我有一个像这样编码的标签,其中包含在运行程序时设置的文本。
label_text = StringVar()
label = Label(window,textvariable=label_text)
label_text.set("Off")
我也有一个复选框;
var= IntVar()
Check= Checkbutton(window,text = "On",variable = var,onvalue = 1,offvalue = 0)
这些包装都是这样的:
label.pack()
Check.pack(side="left")
选中该复选框后,我希望标签更改为“开”, 这样的事情。
if var.get()==1:
label_text.set("On")
当我选中复选框时,文本仍处于关闭状态。任何帮助将不胜感激。
答案 0 :(得分:0)
当检查按钮状态发生变化时,有多种方法可以更新标签文本。
一种可能性是使标签和检查按钮共享相同的StringVar
,并将检查按钮的onvalue / offvalue设置为" On" /" Off"。这样,当检查按钮的状态发生变化时,标签的文本会自动更新。
from tkinter import StringVar, Tk, Label, Checkbutton
window = Tk()
label_text = StringVar()
label = Label(window, textvariable=label_text)
label_text.set("Off")
check= Checkbutton(window, text="On", variable=label_text,
onvalue="On", offvalue="Off")
label.pack()
check.pack(side="left")
window.mainloop()
如果出于某种原因,您确实希望checkbutton的onvalue / offvalue为0/1,则可以将函数传递给checkbutton的command
选项。此函数将根据检查按钮的状态更改标签文本。
from tkinter import StringVar, Tk, Label, Checkbutton, IntVar
def update_label():
if var.get() == 1:
label_text.set("On")
else:
label_text.set("Off")
window = Tk()
label_text = StringVar()
label = Label(window, textvariable=label_text)
label_text.set("Off")
var = IntVar()
check= Checkbutton(window, text="On", variable=var,
onvalue=1, offvalue=0, command=update_label)
label.pack()
check.pack(side="left")
window.mainloop()