gpt4 book ai didi

python - 如何删除 Canvas 文本对象?

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:48 25 4
gpt4 key购买 nike

例如,这是一个 create_text:

self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
font=("calibri", 30), fill="#66FF99", anchor=E)

我怎么能用一个按钮删除它?

最佳答案

一种方法是使用 object ID所有 Canvas 对象构造函数返回:

self.text_id = self.__canvas.create_text(350, lineVotes,
text=str(likesPrinted),
font=("calibri", 30),
fill="#66FF99", anchor=E)

然后您可以使用 Canvas 对象的 delete()像这样的方法:

self.__canvas.delete(self.text_id)

另一种方法是附加 tagCanvas 对象,并使用它:

self.__canvas.create_text(350, lineVotes,
text=str(likesPrinted),
font=("calibri", 30), fill="#66FF99", anchor=E,
tag="some_tag")

然后将标记而不是对象 ID 传递给 delete() 方法:

self.__canvas.delete("some_tag")

标签的名称可以是任何不包含空格或句点的字符串。

标签更强大,因为您可以将相同的标签赋予多个对象,然后将它们作为一个组来操作。相反,一个对象可以通过指定一个元组来附加多个标签:即 tag=("1234", "@special", "posn:13,42") 在构造函数调用。

要在单击 Button 时实现这一点,您还需要定义一个函数或方法,以便在单击时调用上述 Canvas 方法之一叫。然后,在创建按钮小部件时,通过 command= 配置选项指定其名称。

例如(在 class 定义中):

class Class:
...

def create_widgets(self):
self.text_id = self.__canvas.create_text(350, lineVotes, text=str(likesPrinted),
font=("calibri", 30), fill="#66FF99",
anchor=E)
self.delete_btn = Button(root, text="Delete text", command=self.delete_text)
self.delete_btn.pack()

def delete_text(self):
""" Delete the canvas text object. """
if self.text_id:
self.__canvas.delete(self.text_id)
self.text_id = None # To avoid multiple deletions.

关于python - 如何删除 Canvas 文本对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com