在Tkinter中动态更改窗口小部件背景颜色

Mor*_*sen 7 python tkinter

我有一个简单的tkinter窗口.它由一个小窗口,一个计时器和一个设置计时器的按钮组成.我不想详细介绍代码.

我想更改窗口中所有小部件的背景(按钮,标签等).

我的第一个想法是使用我将设置的全局变量"red",并将所有窗口小部件background选项与全局变量关联.然后,按下按钮我将全局变量更改为"green"(以便所有小部件的背景更改)但没有任何反应.

我的理解是窗口.mainloop()更新.如何在重新启动应用程序的情况下更改变量时,如何使用小部件更改背景颜色?

jba*_*win 6

从我的第一印象我认为这应该是你正在寻找的,作为一个简单的例子

from Tkinter import *

root = Tk()
global colour
global colourselection 
global count 
colour = ""
colourselection= ['red', 'blue']
count = 1

def start(parent):
    Tk.after(parent, 1000, change)

def change():
    global colour 
    global colourselection
    global count 
    if (count < 2 ):
        colour = colourselection[count]
        button.configure(bg = colour)
        count + 1
    else:
        colour = colourselection[count]
        button.configure(bg = colour)
        count = 1 
    start(root)



button = Button(text = 'start', command = lambda: start(root))
button.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我相信你可以解决任何问题,它没有经过测试