我正在用 tkinter 制作一個簡單的計算器,計算部分很好。問題是變數(答案)在計算后沒有更新。
您可以在視窗中看到,結果標簽為空,因為它是初始值。 tkinter 視窗
這是我使用的代碼:
from tkinter import *
import tkinter.messagebox as messagebox
answer=""
root = Tk()
root.geometry("600x300")
root.title("Simple Calculator")
def calculate():
value_1 = value_1_entry.get()
operator = operator_entry.get()
value_2 = value_2_entry.get()
if operator==' ':
answer = float(value_1_entry.get()) float(value_2_entry.get())
print(answer)
elif operator=='-':
answer = float(value_1_entry.get()) - float(value_2_entry.get())
print(answer)
return answer
##################Labels###############
value_1 = Label(root, text='Enter first value', font=('bold', 10))
value_1.place(x=20, y=30)
value_1_entry = Entry()
value_1_entry.place(x=150, y=30)
operator = Label(root, text='Enter the operator', font=('bold', 10))
operator.place(x=20, y=60)
operator_entry = Entry()
operator_entry.place(x=150, y=60)
value_2 = Label(root, text='Enter second value', font=('bold', 10))
value_2.place(x=20, y=90)
value_2_entry = Entry()
value_2_entry.place(x=150, y=90)
#################Results####################
result = Label(root, text='Result:', font=('bold', 10))
result.place(x=20, y=120)
result_ = Label(root, text=answer, font=('bold', 10))
result_.place(x=150, y=120)
##################Buttons###############
calculate = Button(root, text="calculate", font=("bold",10), bg="white", command=calculate)
calculate.place(x=70, y=140)
# Run
root.mainloop()
我無法弄清楚如何使 answer="" 在 tkinter 視窗、結果標簽中更新為新答案。
uj5u.com熱心網友回復:
您可以使用 更新標簽文本Label.config() method。
語法:Label.config(text = your_text)
result_.config(text=answer)
在您的情況下,例如:
if operator == ' ':
answer = float(value_1_entry.get()) float(value_2_entry.get())
elif operator == '-':
answer = float(value_1_entry.get()) - float(value_2_entry.get())
result_.config(text=answer)
uj5u.com熱心網友回復:
只需更新里面的標簽calculate():
def calculate():
value_1 = value_1_entry.get()
operator = operator_entry.get()
value_2 = value_2_entry.get()
answer = None
if operator==' ':
answer = float(value_1_entry.get()) float(value_2_entry.get())
elif operator=='-':
answer = float(value_1_entry.get()) - float(value_2_entry.get())
if answer:
print(answer)
result_['text'] = answer # update result_ label
return answer
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/356577.html
