2013-12-11 50 views
0

我有一個主窗口,通過點擊RFFE打開另一個窗口,在這個窗口內我有一個組合框,其中包含'Fix pattern'和'Random Pattern',它是連接到打印按鈕,但每次我點擊打印它出現錯誤var沒有定義請幫助。我的命令不工作,錯誤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() 

回答

0

在代碼中,var是綁定到方法RFFE的範圍的局部變量。爲了在方法之間使用變量,您需要將變量作爲參數傳遞,或者使變量成爲實例變量或全局變量。

由於函數不是類的一部分,因此您需要使它們成爲全局函數。在您使用var的地方插入global var