Tkinter单选按钮不工作内部功能



我试图写一个GUI(实际上是PyMOL插件)与单选按钮。我需要的单选按钮是在一个功能。我有两个问题(如果单选按钮在函数之外,我没有任何问题):

1)最后两个单选按钮看起来是灰色的。(我认为正确的行为应该只有一个检查和无灰色)设置一个不同的默认值(使用ref_value.set())不会改变任何东西

2)当点击提交按钮时,我总是得到默认值(在本例中为"1")。

from Tkinter import *
def __init__(self):
    """this adds the Plugin to the PyMOL menu"""
    self.menuBar.addmenuitem('Plugin', 'command',
                        'Plugin name',
                        label = 'plugin',
                        command = lambda : draw_gui())
def draw_gui():
    global v
    master = Tk()
    master.title(' title ')
    Button(master, text='Submit', command=submit).pack(side=BOTTOM)
    v = StringVar()
    v.set(1)
    Radiobutton(master, text='option 1', variable=v, value=1).pack(side=LEFT)
    Radiobutton(master, text='option 2', variable=v, value=2).pack(side=LEFT)
    Radiobutton(master, text='option 3', variable=v, value=3).pack(side=LEFT)
    master.mainloop()

def submit():
    print v.get()

Thanks in advance

我应该显式地设置master,否则它将使用PyMOL GUI作为master。

v = StringVar(master=master)

PS:感谢Thomas Holder的回答

它适用于我(我复制了您的代码并添加了from Tkinter import *if __name__ == "__main__": draw_gui()行,我认为您也有)。所有的单选按钮都工作了,我在输出中得到了适当的1,2,3。

因此,如果您正在运行相同的代码,则环境存在问题。我在Ubuntu 10.04上安装了Tkinter 73770和Python 2.6.5,并从命令行运行脚本。

您是否正在尝试从IDLE运行它?这通常与使用Tkinter的其他脚本不兼容,因为它是用Tkinter本身编写的。如果是,请尝试从命令行运行。

相关内容

  • 没有找到相关文章

最新更新