python - 如何在 python 计算器中添加删除按钮?
问题描述
我需要帮助将删除按钮添加到 python 计算器。我尝试了网站上建议的其他方法,但没有奏效。如果您能帮助我,我将不胜感激,因为我想知道如何为未来的项目做到这一点。这是我的代码:
from tkinter import*
def btnClick(numbers):
global operator
operator=operator + str(numbers)
text_Input.set(operator)
def btnClearDisplay() :
global operator
operator=""
text_Input.set("")
def btnEqualsInput():
global operator
sumup=str(eval(operator))
text_Input.set(sumup)
operator=""
def backspace(self):
#check if all has been removed
#make sure you import the re module
if re.match(r'\d$', self.current):
self.display(0)
self.new_num = True
else:
self.current = self.current[:-1]
self.display(self.current)
cal = Tk()
cal.title("Calculator")
operator=""
text_Input =StringVar()
txtDisplay = Entry(cal,font=('arial black', 20,'bold') , textvariable=text_Input, bd=30, insertwidth=6,
bg="powder blue", justify='right').grid(columnspan=6)
btn1=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="1",command=lambda:btnClick(1), bg="powder blue",).grid(row=1,column=0)
btn2=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="2",command=lambda:btnClick(2), bg="powder blue").grid(row=1,column=1)
btn3=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="3",command=lambda:btnClick(3), bg="powder blue").grid(row=1,column=2)
Addition=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="+",command=lambda:btnClick("+"), bg="powder blue").grid(row=1,column=3)
#===================================================================================
btn4=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="4",command=lambda:btnClick(4), bg="powder blue").grid(row=2,column=0)
btn5=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="5",command=lambda:btnClick(5), bg="powder blue").grid(row=2,column=1)
btn6=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,
text="6",command=lambda:btnClick(6), bg="powder blue").grid(row=2,column=2)
Subtraction=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="-",command=lambda:btnClick("-"), bg="powder blue").grid(row=2,column=3)
#===================================================================================
btn7=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="7",command=lambda:btnClick(7), bg="powder blue").grid(row=3,column=0)
btn8=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="8",command=lambda:btnClick(8), bg="powder blue").grid(row=3,column=1)
btn9=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="9",command=lambda:btnClick(9), bg="powder blue").grid(row=3,column=2)
Multiplication=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="x",command=lambda:btnClick("x"), bg="powder blue").grid(row=3,column=3)
#===================================================================================
Clear=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="CE",command= btnClearDisplay, bg="powder blue").grid(row=4,column=0)
btn0=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="0",command=lambda:btnClick(0), bg="powder blue").grid(row=4,column=1)
EQUALS=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="=",command=btnEqualsInput, bg="powder blue").grid(row=4,column=3)
Division=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="÷",command=lambda:btnClick("÷"), bg="powder blue").grid(row=4,column=2)
#===================================================================================
Delete=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="÷",command=lambda:btnClick("÷"), bg="powder blue").grid(row=4,column=2)
cal.mainloop()
谢谢你。如果您能帮助我,我将不胜感激。
解决方案
删除按钮的功能如下:
def btnDelete():
global operator
operator=operator[:-1]
text_Input.set(operator)
并改变你的
Delete=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="÷",command=lambda:btnClick("÷"), bg="powder blue").grid(row=4,column=2)
至
Delete=Button(cal,padx=16,bd=8, fg="black",font=('arial black', 20,'bold'),
text="Delete",command=btnDelete, bg="powder blue").grid(row=4,column=2)