【发布时间】:2016-12-03 14:15:53
【问题描述】:
我尝试使用 tkinter 制作一个简单的整数符号计算器。它有一个具有两个不同功能的类。第二个功能应该在用户按下“Enter”按钮时启动。当我运行代码时,窗口会按预期出现。但是当我键入并点击“Enter”时,第二个函数无法运行并且不会更新标签。我希望它更新为“这个数字是正数。”、“这个数字是 0。”或“这个数字是负数”。相反,它保持空白。
我怀疑它是否相关,但我在 PyCharm Community Edition 5.0.4 中制作了这个程序,并且我使用的是 Python 3.5(32 位)。
import tkinter
class IntegerSign:
def __init__(self):
self.window = tkinter.Tk()
self.window.title("Integer Sign Calculator")
self.window.geometry("300x150")
self.number_frame = tkinter.Frame(self.window)
self.solution_frame = tkinter.Frame(self.window)
self.button_frame = tkinter.Frame(self.window)
self.number_label = tkinter.Label(self.number_frame, text="Enter an integer:")
self.number_entry = tkinter.Entry(self.number_frame, width=10)
self.number_label.pack(side='left')
self.number_entry.pack(side='left')
self.statement = tkinter.StringVar()
self.solution_label = tkinter.Label(self.solution_frame, textvariable=self.statement)
self.statement = tkinter.Label(self.solution_frame, textvariable=self.statement)
self.solution_label.pack(side='left')
self.calc_button = tkinter.Button(self.button_frame, text='Enter', command=self.calc_answer)
self.quit_button = tkinter.Button(self.button_frame, text='Quit', command=self.window.destroy)
self.calc_button.pack(side='left')
self.quit_button.pack(side='left')
self.number_frame.pack()
self.solution_frame.pack()
self.button_frame.pack()
tkinter.mainloop()
def calc_answer(self):
self.number = int(self.number_entry.get())
self.statement = tkinter.StringVar()
if self.number > 0:
self.statement = "This number is positive."
elif self.number == 0:
self.statement = "This number is 0."
else:
self.statement = "This number is negative."
IntegerSign()
【问题讨论】:
标签: python user-interface tkinter label calculator