首页 > 解决方案 > 如何在 Python 中逐个字符地删除 Tkinter StringVar?

问题描述

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

在此处输入图像描述

标签: pythontkinter

解决方案


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

使用 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]) 并覆盖现有字符串。

正如@jasonharper指出的那样,您可以替换text[0:len(text)-1]text[0:-1],它看起来更干净并且具有相同的实际效果。


推荐阅读