繁体   English   中英

Tkinter - 更新所有小部件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM