如何解决如何在 tkinter 中删除 canvas.create_text() 中文本的最后一个字符?
self.canvas_textBox = canvas.create_text(290,250,text='SOME TEXT',anchor=NW,fill="lime")
如何删除来自SOME TEXT
的文本的最后一个字符,我必须删除最后一个T
。
canvas.delete(self.canvas_textBox,"1.0",END)
请任何人帮助我!
解决方法
Canvas 一个名为 dchars()
的方法,您可以使用该方法删除画布文本的字符。
语法:canvas.dchars(tagOrId,first,last)
dchars
从一个或多个文本项中删除字符。您可以指定要从哪个索引中删除。例如,canvas.dchars(tag,1,3) 将删除第二、第三和第四个字符。
要删除文本的最后一个字符,请使用 canvas.index(tagOrId,specifier)
获取最后一个字符的索引。说明符 tkiner.END
返回字符串的最后一个索引,然后使用 dchars
,如下所示。
from tkinter import *
def update(event):
canvas.dchars('text',canvas.index('text',END)-1 )
window = Tk()
canvas = Canvas(window,width=300,height=300,bd=0)
canvas.pack()
canvas_textbox = canvas.create_text(20,70,text='Text',fill="red",tag='text')
canvas.bind('<Button>',update)
window.mainloop()
,
要实现这一点,您可以配置您已有的项目。
为此,您首先需要画布的 itemcget
方法,然后将字符串切片并通过画布的 itemconfig
方法插入字符串。
可以在此处找到使用的工作示例:
import tkinter as tk
def del_letter():
old_string = canva.itemcget(c_txt,'text')
new_string = old_string[:-1]
canva.itemconfig(c_txt,text=new_string)
root = tk.Tk()
canva= tk.Canvas(root)
c_txt= canva.create_text(10,10,text='SOME TEXT',anchor='nw')
canva.pack()
butto= tk.Button(root,text='del last letter',command=del_letter)
butto.pack()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。