我創建了一個 GUI 計算器,并希望包含一個附加功能“遺囑認證”。GUI 的普通標準計算器部分作業正常,但是當我嘗試包含特殊功能并單擊 GUI 中的遺囑認證按鈕時,沒有任何反應。部分計算器的代碼如下所示。我已經排除了計算器的許多數字和運算子。
from tkinter import *
def click(num):
global op
op=op str(num)
iptext.set(op)
def evaluate():
global op
output = str(eval(op))
iptext.set(output)
def clearDisplay():
global op
op=""
iptext.set(op)
def probate(op):
# global probate_fee
VALUE_CATEGORY1 = 10000
VALUE_CATEGORY2 = 250000
RATE_CATEGORY1 = 0.05
RATE_CATEGORY2 = 0.03
RATE_CATEGORY3 = 0.01
estate_worth=op
if (estate_worth) < 0:
# is_on = False
print("Invalid Enrty")
else:
if (estate_worth <= VALUE_CATEGORY1):
probate_fee = 500
elif ((estate_worth > VALUE_CATEGORY1) & (estate_worth <= VALUE_CATEGORY2)):
probate_fee = (estate_worth - VALUE_CATEGORY1) * RATE_CATEGORY2 VALUE_CATEGORY1 * RATE_CATEGORY1
elif (estate_worth > VALUE_CATEGORY2):
probate_fee = (estate_worth - VALUE_CATEGORY2) * RATE_CATEGORY3 (
(VALUE_CATEGORY2 - VALUE_CATEGORY1) * RATE_CATEGORY2) VALUE_CATEGORY1 * RATE_CATEGORY1
else:
print("Invalid Entry")
return str(probate_fee)
calc=Tk()
calc.title("GUI Calculator")
op=""
iptext=StringVar()
iparea=Entry(calc,font=('large,_font',15,'bold'),bd=10,justify="right",insertwidth=4,textvariable=iptext).grid(columnspan=10)
bt7=Button(calc,font=('arial',15,'bold'),command=lambda:click(7),bg="lavender",text="7",bd=5,padx=15,pady=10).grid(row=1,column=0)
bt8=Button(calc,font=('arial',15,'bold'),command=lambda:click(8),bg="lavender",text="8",bd=5,padx=15,pady=10).grid(row=1,column=1)
bt9=Button(calc,font=('arial',15,'bold'),command=lambda:click(9),bg="lavender",text="9",bd=5,padx=15,pady=10).grid(row=1,column=2)
add=Button(calc,font=('arial',15,'bold'),command=lambda:click(' '),bg="lavender",text=" ",bd=5,padx=15,pady=10).grid(row=1,column=3)
eql=Button(calc,font=('arial',15,'bold'),command=evaluate,bg="lavender",text="=",bd=5,padx=15,pady=10).grid(row=4,column=2)
div=Button(calc,font=('arial',15,'bold'),command=lambda:click('/'),bg="lavender",text="/",bd=5,padx=15,pady=10).grid(row=4,column=3)
btC=Button(calc,font=('arial',15,'bold'),command=clearDisplay,bg="lavender",text="C",bd=5,padx=15,pady=10).grid(row=4,column=1)
btprobate = Button(calc, font=('arial', 15, 'bold'), command=lambda: evaluate, bg="lavender", text="probate", bd=5, padx=0,
pady=10).grid(columnspan=10)
calc.mainloop(),
uj5u.com熱心網友回復:
沒有任何反應的原因是您需要在 btprobate 的函式名稱后包含“()”。例如:
btprobate = Button(calc, font=('arial', 15, 'bold'), command=lambda: evaluate(), bg="lavender", text="probate", bd=5, padx=0,
pady=10).grid(columnspan=10)
我不確定您要做什么,但這里有一個代碼按評論中的要求運行(它運行,遺囑認證按鈕執行操作):
from tkinter import *
def click(num):
global op
op=op str(num)
iptext.set(op)
def evaluate():
global op
output = str(eval(op))
iptext.set(output)
def clearDisplay():
global op
op=""
iptext.set(op)
def probate(op):
# global probate_fee
VALUE_CATEGORY1 = 10000
VALUE_CATEGORY2 = 250000
RATE_CATEGORY1 = 0.05
RATE_CATEGORY2 = 0.03
RATE_CATEGORY3 = 0.01
estate_worth=eval(op)
if (estate_worth) < 0:
# is_on = False
print("Invalid Enrty")
else:
if (estate_worth <= VALUE_CATEGORY1):
probate_fee = 500
elif ((estate_worth > VALUE_CATEGORY1) & (estate_worth <= VALUE_CATEGORY2)):
probate_fee = (estate_worth - VALUE_CATEGORY1) * RATE_CATEGORY2 VALUE_CATEGORY1 * RATE_CATEGORY1
elif (estate_worth > VALUE_CATEGORY2):
probate_fee = (estate_worth - VALUE_CATEGORY2) * RATE_CATEGORY3 (
(VALUE_CATEGORY2 - VALUE_CATEGORY1) * RATE_CATEGORY2) VALUE_CATEGORY1 * RATE_CATEGORY1
else:
print("Invalid Entry")
iptext.set(str(probate_fee))
# return str(probate_fee)
calc=Tk()
calc.title("GUI Calculator")
op=""
iptext=StringVar()
iparea=Entry(calc,font=('large,_font',15,'bold'),bd=10,justify="right",insertwidth=4,textvariable=iptext).grid(columnspan=10)
bt7=Button(calc,font=('arial',15,'bold'),command=lambda:click(7),bg="lavender",text="7",bd=5,padx=15,pady=10).grid(row=1,column=0)
bt8=Button(calc,font=('arial',15,'bold'),command=lambda:click(8),bg="lavender",text="8",bd=5,padx=15,pady=10).grid(row=1,column=1)
bt9=Button(calc,font=('arial',15,'bold'),command=lambda:click(9),bg="lavender",text="9",bd=5,padx=15,pady=10).grid(row=1,column=2)
add=Button(calc,font=('arial',15,'bold'),command=lambda:click(' '),bg="lavender",text=" ",bd=5,padx=15,pady=10).grid(row=1,column=3)
eql=Button(calc,font=('arial',15,'bold'),command=evaluate,bg="lavender",text="=",bd=5,padx=15,pady=10).grid(row=4,column=2)
div=Button(calc,font=('arial',15,'bold'),command=lambda:click('/'),bg="lavender",text="/",bd=5,padx=15,pady=10).grid(row=4,column=3)
btC=Button(calc,font=('arial',15,'bold'),command=clearDisplay,bg="lavender",text="C",bd=5,padx=15,pady=10).grid(row=4,column=1)
btP=Button(calc,font=('arial',15,'bold'),command=lambda: probate(op), bg="lavender", text="probate", bd=5, padx=0, pady=10).grid(columnspan=10)
calc.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465749.html
上一篇:我的應用程式沒有顯示在螢屏上
下一篇:Java泛型-通過繼承層的上限
