[英]Tkinter - Update All Widgets
您好,我正在尝试通过 tkinter 上的按钮更改背景。 我有一个按钮可以改变 mainWindow 的背景,但是当按下按钮时它不会立即改变。 我认为tk.update()
命令没用,因为我对它进行了太多测试,但什么也没发生。
这是我的代码:
import tkinter as tk
def ChangeBg():
global bgColor
bgColor = 'white'
mainWindow.update()
bgColor = 'black'
root = tk.Tk()
mainWindow = tkToplevel()
mainWindow.geometry('500x500')
mainWindow.config(bg=bgColor)
btn = tk.Button(mainWindow, text='change background', command=ChangeBg)
btn.pack()
tk.mainloop()
我猜你会说“你为什么不直接使用mainWindow.config(bg=bgColor)
?”。 因为在我的主代码中,我必须将颜色存储在变量中,并且会有更多的小部件。 像generalBtnColor, generalForeground, generalTextColor
。 我可以编写很多代码来更新所有小部件本身,但这是 Python,我相信有一条捷径。
我添加了mainWindow.config(bg='white')
。 第 11 行和第 14 行也发生了变化。
import tkinter as tk
def ChangeBg():
global bgColor
mainWindow.config(bg='white')
mainWindow.update()
root = tk.Tk()
mainWindow = tk.Toplevel()
mainWindow.geometry('500x500')
mainWindow.config(bg = 'black')
btn = tk.Button(mainWindow, text='change background', command=ChangeBg)
btn.pack()
tk.mainloop()
Output:当前黑色:
改成白色后:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.