我正在尝试通过单选按钮更新TopLevel小部件的背景颜色。 我想要的是在用户更改单选按钮时更改背景颜色。 目前,该程序打开一个新窗口,带有一个单选按钮。背景颜色根本不会改变。
from tkinter import *
class Example:
def newWindow(self):
top = Toplevel()
v = IntVar()
v.set(-1)
self.aRadioButton = Radiobutton(top, text="Blue",variable = v, value = 0)
self.aRadioButton.grid(row=1, column=1)
self.aRadioButton = Radiobutton(top, text="Red",variable = v, value = 1)
self.aRadioButton.grid(row=1, column=0)
if v == 0:
top.configure(bg="Blue")
elif v == 1:
top.configure(bg="Red")
def __init__(self, master):
frame = Frame(master, width = 50, height = 50)
frame.grid()
self.aLabel = Label(frame, text = "New window bg colour").grid(row=0)
self.aButton = Button(frame, text="To new window", command=self.newWindow)
self.aButton.grid(row=1)
root = Tk()
app = Example(root)
root.mainloop()
答案 0 :(得分:1)
更改单选按钮时必须使用事件。 将命令方法附加到radiobuttons,如下所示:
self.aRadioButton = Radiobutton(top, text="Blue",variable = v, value = 0, command=lambda: top.configure(bg="Blue"))
self.aRadioButton = Radiobutton(top, text="Red",variable = v, value = 1, command=lambda: top.configure(bg="Red"))
此外,当您执行此操作时,如果仅将此变量用于此属性,则不需要变量v
。