【发布时间】:2015-08-07 13:09:11
【问题描述】:
在 Python/Tkinter 中,我试图从帧中获取一个值(整数),对其进行计算并将其作为输出返回。当我只使用一个主框架并将所有东西都放在那个框架中时,我能够让它工作。现在我想将它和另一个操作分离到它们自己的框架中。
我的程序将板英尺转换为线性英尺(框架 A)和 直线脚到板脚(框架 B)。
我收到如下错误:NameError: global name 'b_entry' is not defined。我有一种感觉,我可能会不正确地引用框架(self、master、a_frame 等)。
这是一个简单的例子:
import Tkinter as tk
class App:
def __init__(self, master):
self.master = master
master.grid()
b_frame = tk.Frame(master).grid(row=0)
b_name = tk.Label(b_frame, text='Blah').grid(row=1, columnspan=4)
b_label = tk.Label(b_frame, text='Label').grid(row=2, column=0)
b_entry = tk.Entry(b_frame).grid(row=2, column=1)
b_output = tk.Label(b_frame, text='Output')
b_output.grid(row=3, columnspan=2)
b_button = tk.IntVar()
tk.Button(b_frame, text='calc', command=self.convert).grid(row=4, columnspan=2)
def convert(self):
a = int(b_entry.get())
result = int(a * a)
b_output.configure(text=result)
root = tk.Tk()
App(root)
root.mainloop()
【问题讨论】: