Gleiche Konfiguration aller Label-Widgets in Tkinter
Gibt es eine Möglichkeit, dieselbe Konfiguration in den gewünschten Beschriftungen zu verwenden? Zum Beispiel setzen wir die Konfiguration in eine Variable und verwenden sie nach Bedarf:
from tkinter import *
mainWindow = Tk()
mainFrame = Frame(mainWindow,bg="Red")
mainFrame.pack(fill="both",expand=True)
# Create a variable that contains the configuration for Label
LabelSettings = '''font=("Arial", 18),bg="Black", fg="white", padx=5, pady=5'''
label = Label(mainFrame,text="Vertical Frame Example")
label.config(LabelSettings)
label.pack(fill="x")
mainWindow.mainloop()
Antworten
Sie können auch die Optionen in einem Wörterbuch erstellen und dann an die config()Methode weitergeben, z. B.:
LabelSettings = {'font':("Arial", 18),'bg':"Black",'fg':"white",'padx':5, 'pady':5}
....
label.config(LabelSettings)
Wenn Sie es an die erste Erstellung des Widgets übergeben möchten, müssen Sie es in Ihrem Beispiel als Schlüsselwortargument (**) angeben, z.
label = Label(mainFrame,text="Vertical Frame Example",**LabelSettings)
Wie von Jasonharper gesagt.
Oder Sie können Ihre auch ersetzen label.config(LabelSettings)durch:
exec(f'label.config({LabelSettings})') #might not be recommended
Tkinter verwaltet eine interne Datenbank mit Standardoptionswerten (als Optionsdatenbank bezeichnet ). Wenn Sie die Standardeinstellung für alle Widgets ändern möchten, können Sie einfach den Datenbankwert ändern. Alle Widgets übernehmen die Änderungen, sofern sie nicht von einem bestimmten Widget überschrieben werden.
Sie können Ihrem Code beispielsweise Folgendes hinzufügen, um das zu erreichen, was Sie möchten:
mainWindow.option_add("*Label*Font", ("Helvetica", 32))
mainWindow.option_add("*Label*Foreground", "white")
mainWindow.option_add("*Label*Background", "red")
mainWindow.option_add("*Label*padX", 5)
mainWindow.option_add("*Label*padY", 5)