在Vkeyboard中,退格键(<-(用于删除最后键入的文本。我使用tk.Entry
小部件从web中获得了如下所示的代码。
input = canvas.get(self.canvas_textbox, "1.0", 'end-2c')
self.canvas_textbox.delete("1.0", END)
self.canvas_textbox.insert("1.0", input, END)
其中self.canvas_textbox
是当用户按下Vkeyboard上的键时显示文本的条目。
现在,我想用canvas.create_text
更改tk.Entry
,所以我写的删除文本中最后一个键入的字符的代码如下,
input = canvas.itemcget(self.canvas_textbox, "text")
canvas.delete(self.canvas_textbox,"1.0", END)
canvas.insert(self.canvas_textbox, input, "1.0",END)
但不幸的是,它删除了整个文本,而不是最后键入的字符。
有人能告诉我为什么吗?
对不起我英语不好。
您正在从1到END删除它,所以它会删除整行。尝试len(entry.get()) - 1, END
。它得到的是条目中有多少个字符的数字(从前到后(-1,所以它得到最后2个数字。
示例代码:
from tkinter import *
root = Tk()
def dellastword():
entry.delete(len(entry.get()) - 1, END)
entry = Entry(root, width=20)
entry.pack()
button = Button(root, text='Delete Last Word', width=100, height=3, command=dellastword)
button.pack()
root.mainloop()