计算器有一个按钮удаления последнего введеного символа。我想通过调用将删除label1最后一个字符的函数来实现它。
我正在尝试使其成为标准,[:-1]但由于某种原因它不起作用,我以同样的方式尝试了它return label1["text"] [:-1]。但它不出来。
这是代码(函数def last_sim():):
from tkinter import *
import math
#from tkinter.ttk import Radiobutton
window = Tk()
window.title("Calculator")
oper=["+","-","*","/"]
number = IntVar()
window.geometry('350x250')
global operand1, lastop, lastres
lastop=0
operand1=0
lastres=0
def add():
label1["text"] = label1["text"] + str(number.get())
label2["text"] = label2["text"] + str(number.get())
def op():
global operand1
global lastop
operand1=int(label1["text"])
label1["text"] = ""
lastres=operand1
lastop=number.get()
label2["text"] = label2["text"] + label1["text"]
label2["text"] = label2["text"] + oper[lastop-11]
#if lastres!=0:
#operand1+=lastres
#print("Увеличили операнд1", operand1)
#lastres=0
if lastop==11:
print("lastres= ",lastres,"operand1= ",operand1)
lastres+=operand1
operand1+=int(label1["text"])
print("lastres= ",lastres,"operand1= ",operand1)
def vyvod():
global operand1
global lastop
global lastres
if lastop==11:
operand1+=int(label1["text"])
label1["text"] = str(operand1)
label2["text"] = label2["text"] + " = " + label1["text"]
if lastop==12:
operand1-=int(label1["text"])
label1["text"] = str(operand1)
label2["text"] = label2["text"] + " = " + label1["text"]
elif lastop==13:
operand1*=int(label1["text"])
label1["text"] = str(operand1)
label2["text"] = label2["text"] + " = " + label1["text"]
elif lastop==14:
operand1/=int(label1["text"])
label1["text"] = str(operand1)
label2["text"] = label2["text"] + " = " + label1["text"]
else:
print("Ошибка в операции")
def koren():
operand1 = math.sqrt(int(label1["text"]))
label1["text"] = str(operand1)
label2["text"] = label2["text"] + " = " + label1["text"]
def clean():
global operand1
global lastop
global lastres
operand1=0
lastop=0
lastres=0
label1["text"] = ""
label2["text"] = ""
def last_sim():
return label1["text"] [:-1]
btn1=Radiobutton(window,indicatoron=0,text="1",width=2,variable=number,value=1,command=add,bg="lightgreen")
btn2=Radiobutton(window,indicatoron=0,text="2",width=2,variable=number,value=2,command=add,bg="lightgreen")
btn3=Radiobutton(window,indicatoron=0,text="3",width=2,variable=number,value=3,command=add,bg="lightgreen")
btn4=Radiobutton(window,indicatoron=0,text="4",width=2,variable=number,value=4,command=add,bg="lightgreen")
btn5=Radiobutton(window,indicatoron=0,text="5",width=2,variable=number,value=5,command=add,bg="lightgreen")
btn6=Radiobutton(window,indicatoron=0,text="6",width=2,variable=number,value=6,command=add,bg="lightgreen")
btn7=Radiobutton(window,indicatoron=0,text="7",width=2,variable=number,value=7,command=add,bg="lightgreen")
btn8=Radiobutton(window,indicatoron=0,text="8",width=2,variable=number,value=8,command=add,bg="lightgreen")
btn9=Radiobutton(window,indicatoron=0,text="9",width=2,variable=number,value=9,command=add,bg="lightgreen")
btn0=Radiobutton(window,indicatoron=0,text="0",width=2,variable=number,value=0,command=add,bg="lightgreen")
btn11=Radiobutton(window,indicatoron=0,width=2,text="+",variable=number,value=11,command=op,bg="lightblue")
btn12=Radiobutton(window,indicatoron=0,width=2,text="-",variable=number,value=12,command=op,bg="lightblue")
btn13=Radiobutton(window,indicatoron=0,width=2,text="*",variable=number,value=13,command=op,bg="lightblue")
btn14=Radiobutton(window,indicatoron=0,width=2,text="/",variable=number,value=14,command=op,bg="lightblue")
btn15=Radiobutton(window,indicatoron=0,width=2,text="=",variable=number,value=15,command=vyvod)
btn16=Radiobutton(window,indicatoron=0,width=2,text="C",variable=number,value=16,command=clean,bg="red")
btn17=Radiobutton(window,indicatoron=0,width=2,text="√",variable=number,value=17,command=koren,bg="lightblue")
btn18=Radiobutton(window,indicatoron=0,width=2,text="DL",variable=number,value=18,command=last_sim,bg="red")
btn1.grid(row=0, column=0)
btn2.grid(row=0, column=1)
btn3.grid(row=0, column=2)
btn4.grid(row=1, column=0)
btn5.grid(row=1, column=1)
btn6.grid(row=1, column=2)
btn7.grid(row=2, column=0)
btn8.grid(row=2, column=1)
btn9.grid(row=2, column=2)
btn0.grid(row=3, column=1)
btn11.grid(row=0, column=3)
btn12.grid(row=1, column=3)
btn13.grid(row=2, column=3)
btn14.grid(row=3, column=3)
btn15.grid(row=4, column=3)
btn16.grid(row=3, column=0)
btn17.grid(row=3, column=3)
btn18.grid(row=3, column=2)
frame = Frame(master=window, height=1, borderwidth=5,bg="red")
frame.grid(row=4, column=0,columnspan=3)
label1 = Label(master=window, width=15, height=1,text="", bg="yellow")
label1.grid(row=4, column=0,columnspan=3,pady=10)
label2 = Label(master=window, width=15, height=1,text="", bg="yellow")
label2.grid(row=5, column=0,columnspan=6,sticky = W)
window.mainloop()

为什么这是不可能的?