Also würde ich gerne alle tk.Button (und Eintrag) Objekte in einem gesamten Programm zu einer Liste hinzufügen. (So, dass ich die Farben jeder Taste ändern kann, obwohl iterieren und config)Hinzufügen aller tk.Button Objekte zu einer Liste zu config
Ich bin ein Bündel von tkinter Frames wie folgt zu erstellen:
class AppClass(tk.Tk):
def __init__(self, *args, **kwargs):
# Initialising Tkinter
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.wm_title(self, 'test-program')
tk.Tk.geometry(self, '800x480')
container = tk.Frame(self)
container.pack(fill='both', expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.background_theme = '2'
self.background_theme_to_be_written_to_file = '2'
self.frames = {}
for F in (HomePage,
SecondName,
ThirdName):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
frame.configure(background=background_page)
self.show_frame(HomePage)
...
app = AppClass()
app.mainloop()
app = None
exit()
Ideen ? Ich weiß .winfo_children()
kann alle Objekte in einer Seite auswählen - können wir alle Objekte im Programm auswählen?
**
im Moment versuche ich so etwas wie diese Arbeit zu machen - seltsam ist es nur eine Taste auf dem Bildschirm zu wechseln (Es gibt 4):
parent.list_of_objects_in_parent = tk.Button.winfo_children(parent)
print(parent.list_of_objects_in_parent)
for entry in parent.list_of_objects_in_parent:
entry.config(bg="pink")
** schnelles Update :
ich habe Art eine Teillösung:
self.bind("<<ShowFrame>>", self.on_show_frame)
...
def on_show_frame(self, event):
self.list_of_objects_in_parent = tk.Button.winfo_children(self)
print(self.list_of_objects_in_parent)
for entry in self.list_of_objects_in_parent:
if type(entry) == type(self.button_to_go_to_home_page):
entry.config(bg="pink")
print("working")
Wenn ich das richtig verstanden, was Sie wollen, müssen Sie nur eine Liste in Ihrer Klasse erstellen und eine Funktion machen, die Ihr Widget erstellen und fügen Sie ihn in dieser Liste – Stephie
Sie könnten zumindest alle Objekte auswählen, rekursiv unter der Annahme, 'winfo_children' funktioniert so wie du sagst. – Nae
Können Sie die Widgets nicht wie in einer Liste von Widget-Objekten erstellen, wie 'für i in range (10): btn [i] = tk.Button (übergeordnete, text =" button "+ num)'? – Nae