Answer a question

I have a simple tkinter window. It consists of a small window, a timer, and a button to set timer. I don't want to go in details with the code.

I want to change the background of all the widgets in my window(buttons, label, Etc.).

My first thought is to use a global variable which I will set to "red" for example, and associate all the widgets background option with the global variable. Then, on button press I will change the global variable to "green" (so that the background of all widgets change) but nothing happens.

My understanding was the .mainloop() sort of updated the window. How can I have the widgets to change background color when my variable change without restarting my application?

Answers

from my first impression I think this should be what you're looking for, as a simple example

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()

I'm sure you can work out any issues, it's not been tested

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐