如何为Tkinter计算器添加Backspace(退格)功能?
Tkinter计算器退格功能修复方案
你的问题出在对\b转义字符的理解上——它是终端控制字符,不是用来删除字符串内容的,Tkinter的Label不会识别它。要实现移除最后一个字符的退格功能,直接对字符串做切片处理即可:
修改你的delete函数为:
def delete(): global equation_text # 截取字符串到倒数第二个字符,去掉最后一位 equation_text = equation_text[:-1] equation_label.set(equation_text)
补充说明:
equation_text[:-1]是Python字符串的切片语法,取从第一个字符到倒数第二个字符的所有内容,刚好去掉最后一个字符。- 如果当前
equation_text是空字符串,[:-1]返回的还是空字符串,不会触发错误,无需额外判断空值。
修改后的完整相关代码片段:
from tkinter import * def delete(): global equation_text equation_text = equation_text[:-1] equation_label.set(equation_text) window = Tk() equation_text = '' equation_label = StringVar() label = Label(window,textvariable=equation_label,font=('Consolas',20),bg='gray',width=29,height=3) label.pack() frame = Frame(window,bg='black') frame.pack() bequals = Button(frame,text='Del',height=4,width=9,font=35,command=delete).grid(row=3,column=2) window.mainloop()
内容的提问来源于stack exchange,提问作者User102
相关产品推荐
相关产品推荐

