删除 Tkinter 画布文本项的内容 [英] Deleting contents of a Tkinter canvas text item

查看:32
本文介绍了删除 Tkinter 画布文本项的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如下所示,函数 1 调用另一个函数 (draw_text),以便我可以将我的输出/结果显示到画布内的标签中,并在我的 GUI 中.这一切都很好(感谢 Stack Overflow !!)

As shown below, Function 1 calls another function (draw_text) so that I can display my output / result to a label within the canvas out my GUI. This all work great (thanks to Stack Overflow!!)

# Function 1

def Relay_1():
    arduinoData.write(b'1')
    draw_text(self, 'This is a Test')

# Function 2

def Relay_():
    arduinoData.write(b'1')
    draw_text(self, 'This is another test number 2')

#Function 3

def draw_text(self, text):
    self.canvas.create_text(340,330, anchor='center', text=text,
                            font=('Arial', '10', 'bold'))

现在我的问题:

如何清除标签内容"?每次调用函数 1 或函数 2 时,画布上的结果都会刷新/更新.目前,短信只会覆盖自己.

How do I clear the "contents of the label" that has been created so each time I call Function 1 or 2, the result on the canvas will refresh / update. Currently the text message just overwrites itself.

推荐答案

每次在画布上创建对象时,它都会返回一个标识符.您可以将此标识符传递给画布 delete 方法.

Each time you create an object on a canvas, it returns an identifier. You can pass this identifier to the canvas delete method.

label_id = self.canvas.create_text(...)
...
self.canvas.delete(label_id)

您还可以为一个项目提供一个或多个标签,并使用标签而不是 id:

You can also supply one or more tags to an item, and use the tag rather than the id:

self.canvas.create_text(..., tags=('label',))
...
self.canvas.delete('label')

这篇关于删除 Tkinter 画布文本项的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆