我的命令不起作用,未定义错误var

时间:2013-12-11 17:53:50

标签: tkinter command var

我有一个主窗口,通过点击RFFE打开另一个窗口,在这个窗口内我有一个组合框,其中包含“修复图案”和“随机图案”,它连接到打印按钮,但每次我点击打印它提出错误var未定义请帮助。

from Tkinter import *
from ttk import *

class Main(Frame):
    def __init__(self, *args, **kwargs):
        Frame.__init__(self, *args, **kwargs)

        RFFE = Button(self, text="RFFE", command=self.rffe_button)
        RFFE.pack() 

        quit = Button(self, text="QUIT", command=self.quit)
        quit.pack()


    def rffe_button(self):
        var = RFFE()


def RFFE():
    Up = Toplevel()
    Up.geometry('470x280')  
    top_label = Label(Up, text='RFFE', font=('calibri', (14))).pack()

    var = StringVar()   
    Sequence_menu_label = Label(Up, text='Trigger Sequences', font=('calibri', (14))).pack()    
    Sequence_menu = OptionMenu(Up, var, 'Select','Fix pattern','Random Pattern').pack()

    var.set('Select')

    Print = Button(Up, text='Print',command=callback).pack()


def callback():
    print "You've selected: " + var.get()

if __name__ == "__main__":
    root = Tk()
    Main(root).pack(side="top", fill="both", expand=True)
    root.mainloop()

1 个答案:

答案 0 :(得分:0)

在您的代码中,var是绑定到方法RFFE范围的局部变量。为了在方法之间使用变量,您需要将变量作为参数传递,或者使变量成为实例变量或全局变量。

由于函数不是类的一部分,因此您需要将它们设置为全局。在您使用global var的地方插入var