Tkinter:什么更快:删除和绘制新的或Itemconfig?

时间:2017-02-20 19:39:58

标签: python canvas tkinter

在Tkinter Canvas上,更新一段文字canvas.itemconfig(text, text='new text')或删除文字并将新文字写入屏幕的速度更快。

删除文字并添加新文字:

text = canvas.create_text(200, 200, text='old text')
canvas.delete(text)
text = canvas.create_text(200, 200, text='old text')

使用itemconfig

text = canvas.create_text(200, 200, text='old text')
canvas.itemconfig(text, text='new text')

2 个答案:

答案 0 :(得分:2)

一件物品更快无关紧要。当必须管理大量对象ID时,画布存在性能问题 1 ,即使它们是已删除项目的ID。每次删除和创建文本时,都会添加另一个ID。如果一遍又一遍地删除并重新创建文本项,最终会导致性能问题。

最佳解决方案是配置现有项目的文本。

1 我不能引用此参考。我环顾四周,无法找到明确的记录,但我过去曾亲眼看到过这个问题。

答案 1 :(得分:0)

至于哪个更快,它真的不会产生太大的影响,因为毕竟我们谈论的是几分之一秒。你可以说虽然canvas.itemconfig只有一行代码,但删除然后重新添加文本是2行和2个命令,因此canvas.itemconfig可能会使其更快或使代码更有效。所以...除非你遇到canvas.itemconfig的问题,否则我会暂时坚持下去。