如何在Python中逐个字符删除Tkinter StringVar?

如何在Python中逐个字符删除Tkinter StringVar?,python,tkinter,Python,Tkinter,我是Python新手,现在正在学习Tkinter。我正在使用一个简单的计算器,需要在我的项目中为擦除按钮定义一个函数,以逐个字符删除输入的数字(而不仅仅是一次清除条目) 您可以使用包含除最后一个字符以外的所有字符的字符串覆盖现有字符串: Tkinter StringVar示例: import tkinter as tk root = tk.Tk() text = tk.StringVar() text.set('Hello world') text.set(text.get()[0:-1])

我是Python新手,现在正在学习Tkinter。我正在使用一个简单的计算器,需要在我的项目中为
擦除
按钮定义一个函数,以逐个字符删除输入的数字(而不仅仅是一次清除条目)


您可以使用包含除最后一个字符以外的所有字符的字符串覆盖现有字符串:

Tkinter StringVar示例:

import tkinter as tk

root = tk.Tk()
text = tk.StringVar()
text.set('Hello world')
text.set(text.get()[0:-1]) # Hello worl (the "d" was removed)
tk.Label(root, textvariable=text).grid()
root.mainloop()
使用简单Python字符串的示例:

text = "Hello world"
text = text[0:len(text)-1]
print(text) # Hello worl (the "d" was removed)
方法
len(text)
返回字符串的长度,然后我们从第一个字符(
0
)一直读取到倒数第二个字符(
len(text)-1]
),并覆盖现有字符串


如前所述,您可以用
text[0:len(text)-1]
替换
text[0:len(text)-1]
,这看起来更干净,也有同样的实际效果。

这里实际上不需要
len()
text=text[0:-1]
做同样的事情(片中的负数是相对于字符串的长度来解释的).那是真的,我会在答案中加上这个。非常感谢。感谢您的帮助,我非常感谢,但我还有一个问题,关于这个解决方案,它对Stringvar()也有效吗?因为我使用Stringvar在我的Entry@kimia我用应用于Tkinter StringVar的相同逻辑更新了答案。@TelmoTrooper非常感谢。您解决了我的问题。再次感谢您的帮助