我嘗試使用tkinter製作一個簡單的整數符號計算器。它有兩個不同的功能類。第二個功能應該在用戶按下「Enter」按鈕時啓動。當我運行代碼時,窗口就會按照它的設想出現。但是當我輸入並點擊「Enter」時,第二個功能無法運行,並且不會更新標籤。我希望它更新爲「此數字爲正數」,「此數字爲0」或「此數字爲負數」。相反,它保持空白。Tkinter計算器無法更新標籤
我懷疑這是相關的,但我在PyCharm社區版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()
謝謝。現在它可以工作。 –
好。請接受答案。 –