我使用Tkinter制作GUI。我有一个带2个radiobutton的窗口('是'和'否'),但是当我选择一个时,它不会运行脚本:
root = Tk()
Button(root, text='TEST', command=root.quit).pack()
root.mainloop()
master = Tk()
v = IntVar()
Radiobutton(master, text='Yes', variable=v, value=0).pack()
Radiobutton(master, text='No', variable=v, value=1).pack()
Button(master, text='Exit', command=master.quit).pack()
master.mainloop()
print(v.get())
if v.get() == 0:
testy = Tk()
Label(testy, text='Bad').pack()
testy.mainloop()
else:
testn = Tk()
Label(testn, text='Bad').pack()
testn.mainloop()
如果我没有第一个窗口,它可以正常工作,但它没有。
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
Tk()
系统,但应该只有一个。Toplevel()
mainloop()
除事件外没有执行任何代码。只有在关闭窗口后,代码才会在mainloop
之后继续“流动”。 所以这是你的代码修复:
from tkinter import *
root = Tk()
Button(root, text='TEST', command=root.quit).pack()
master = Toplevel()
v = IntVar()
def check_radio():
print(v.get())
if v.get() == 0:
Label(Toplevel(), text='Bad').pack()
else:
Label(Toplevel(), text='Good').pack()
Radiobutton(master, text='Yes', variable=v, value=0, command=check_radio).pack()
Radiobutton(master, text='No', variable=v, value=1, command=check_radio).pack()
Button(master, text='Exit', command=master.quit).pack()
root.mainloop()
仔细检查,我改变了小部件的父母和其他变化。
答案 1 :(得分:0)
可能是tkinter radiobutton not updating variable的重复,但看到这个问题首先被问到答案可能会更有意义。
确保将主人分配给IntVar,如if (value == "Groups") {
$("#bottom").hide();
} else { $("#bottom").show(); }
:
$("#middle").change(function() {
var middle = $(this).val();
$("#bottom > option").hide();
$("#bottom > option[value*='" + middle +"']").show();
});
尝试运行它,单击不同的按钮(它们是radiobuttons但是指示符= False),您将看到它正确打印更改的值!