Python 带有radiobutton的Bug-tkinter
我使用Tkinter制作GUI。我有一个带有两个单选按钮(“是”和“否”)的窗口,但当我选择一个时,它不会运行脚本:Python 带有radiobutton的Bug-tkinter,python,tkinter,Python,Tkinter,我使用Tkinter制作GUI。我有一个带有两个单选按钮(“是”和“否”)的窗口,但当我选择一个时,它不会运行脚本: 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,
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()
如果我没有第一个窗口,它可以工作,但是有了它,它就不工作了
有人知道如何解决这个问题吗
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()
仔细检查,我更改了小部件的父项和其他更改
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()
仔细检查,我更改了小部件的父项和其他更改 可能是重复的,但鉴于这个问题是首先提出的,因此答案在这里可能更有意义
确保您正在为IntVar分配一个主节点,如
self.rbv=tk.IntVar(主节点)#或“root”或您正在使用的任何对象)
:
将Tkinter作为tk导入
导入ttk
类My_GUI:
定义初始(自我,主):
self.master=master
硕士头衔(“测试无线电”)
self.rbv=tk.IntVar(master)#的可能重复,但鉴于这个问题是首先提出的,这里的答案可能更有意义
确保您正在为IntVar分配一个主节点,如self.rbv=tk.IntVar(主节点)#或“root”或您正在使用的任何对象)
:
将Tkinter作为tk导入
导入ttk
类My_GUI:
定义初始(自我,主):
self.master=master
硕士头衔(“测试无线电”)
self.rbv=tk.IntVar(master)#好的,谢谢,如果我想取回radiobutton的信息,我需要怎么做?正如你在代码中看到的,我在radiobutton的创建中添加了另一个参数:command=check_radio,它在按下radiobutton时调用check_radio谢谢,如果我想取回radiobutton的信息,我需要怎么做?正如您在代码中看到的,我在radiobutton的创建中添加了另一个参数:command=check\u radio,它在按下radiobutton时调用check\u radio