mit Python 3.6.1 und das mitgelieferte tkinter ModulAls ich grid_slaves() auf Reihen mit Widgets laufen gibt es eine leere Menge
Ich versuche, eine Liste von 10 Karten zu haben tkinter anzuzeigen und ihre jeweiligen Erweiterungen ... Ich kann es einmal funktionieren lassen, aber ich kann es nicht mit dem Knopf wiederholbar machen.
Ich möchte den ersten Satz entfernen und dem Benutzer erlauben, es erneut auszuführen. Also muss ich die Widgets identifizieren und entfernen. Ich habe this answer verwendet, als ich versuchte herauszufinden, wie man die Label-Widgets in einer bestimmten Zeile identifiziert. Aber wenn ich es ausführe, werden die Widgets in den Zeilen nicht übernommen. Es gibt nur leere Sätze für jede Zeile zurück.
Diese erste Schleife ist, wo ich die Etiketten aus der Hauptklasse app(Frame) __init__()
Methode und auch die Methode, die Dinge abholen sollte, um sie auszuräumen eingerichtet. Ich habe es weiter unterteilt, als es an diesem Punkt versucht werden muss, um Fehler zu beheben. Ich denke, es ist ein Problem mit dem Umfang, ich kenne einfach nicht genug Python, um bei meiner Suche ohne einen Rat weiter zu kommen.
from tkinter import *
class App(Frame):
def __init__(self):
super().__init__()
row = 2
for item in range(0, 9):
self.label1 = Label(text="item")
self.label1.grid(row=row, column=0, sticky=W)
self.label2 = Label(text="item")
self.label2.grid(row=row, column=2, sticky=E)
row += 1
button = Button(text="Do the thing!", command=self.replace_labels())
button.grid(row=0, column=1)
def replace_labels(self):
row = 2
for number in range(0, 9):
temp_set = self.grid_slaves(row=number + row)
row += 1
for thing in temp_set:
thing.forget()
def main():
root = Tk()
app = App()
root.mainloop()
if __name__ == '__main__':
main()
bitte ein [MCVE] mit korrektem Einzug erstellen. Dieses Beispiel wird nicht wie es ist ausgeführt. –