Ich versuche, eine Liste zu erstellen, die neun Unterlisten hat. Diese Teillisten müssen in die Lage neun Tasten zu speichern, leider gibt es die folgenden Fehler:Dynamische Erstellung von Schaltflächen und Speichern in einem 2-D-Array Probleme
File "C:\PythonLearning\Testing2dArrayOfButtons.py", line 18, in <module>
BButtons[count][gridX*(y)+x].grid(row=y, column=x)
IndexError: list index out of range
Ich glaube, das Problem liegt in den count
, zunächst habe ich versucht, mit dem y
Variable für die for
Schleife, sondern dass didn arbeite überhaupt nicht. Bei Verwendung der Zahlen 0-8 anstelle der Zählvariablen wird der Fehler nicht erzeugt, die Schaltflächen werden jedoch nicht dynamisch in einem 2-D-Array-Format angeordnet.
from Tkinter import *
gridX = 9
gridY = 9
BButtons=[[] for i in range(9)]
root = Tk()
count = -1 #introduced count because 'y variable' was not working
for y in range(gridY):
count += 1
for x in range(gridX):
print count
BButtons[count].append(Button(root, text="X", height = 2, width = 4))
print count
print BButtons
BButtons[count][gridX*(y)+x].grid(row=y, column=x) #gridX*(y)+x is the formula used to obtain the nested button location
print BButtons #the buttons[][].grid is setting the button positions on the scrin to a grid
print BButtons
root.mainloop()
Danke, ich weiß nicht, wie ich damit verwirrt wurde. Das gridX * (y) + x-Ding wurde ursprünglich für die Zuweisung von Text zu den Tasten verwendet und aus irgendeinem idiotischen Grund dachte ich, es würde funktionieren. – Aquacruelty