我有一个主窗口,通过点击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()
答案 0 :(得分:0)
在您的代码中,var
是绑定到方法RFFE
范围的局部变量。为了在方法之间使用变量,您需要将变量作为参数传递,或者使变量成为实例变量或全局变量。
由于函数不是类的一部分,因此您需要将它们设置为全局。在您使用global var
的地方插入var
。