是否可以在所需标签中使用相同的配置。例如,我们将配置放在变量中并按需使用:
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()
答案 0 :(得分:2)
Tkinter维护一个内部默认选项值数据库(称为 options数据库)。如果要更改所有窗口小部件的默认值,则只需更改数据库值,除非所有窗口小部件都覆盖了特定的窗口小部件,否则所有窗口小部件都将获取更改。
例如,您可以在代码中添加以下内容以实现所需的功能:
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)
答案 1 :(得分:1)
您可能还要做的是在字典中创建选项,然后将其传递给config()
方法,例如:
LabelSettings = {'font':("Arial", 18),'bg':"Black",'fg':"white",'padx':5, 'pady':5}
....
label.config(LabelSettings)
并且,如果要将其传递到小部件的初始创建中,则需要在示例中将其指定为关键字arguments(**),例如:
label = Label(mainFrame,text="Vertical Frame Example",**LabelSettings)
就像贾森哈珀所说的。
或者您也可以将label.config(LabelSettings)
替换为:
exec(f'label.config({LabelSettings})') #might not be recommended
答案 2 :(得分:0)
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
labelFont = ('Arial',18)
labelBG = 'Black'
labelFG = 'white'
labelPadx = 5
labelPady = 5
label = Label(mainFrame,text="Vertical Frame
Example")
label.config(font = labelFont, bg = labelBG, fg =
labelFG, padx = labelPadx, pady = labelPady)
label.pack(fill="x")
mainWindow.mainloop()