首页 > 解决方案 > 有没有办法在 tkinter Canvas 上重新开始(重置)项目编号?

问题描述

在 tkinter Canvas 中删除一个项目后,每次创建一个新项目时,它的 ID 值都会比前一个大。即使您删除所有项目 (.delete'all') ,新项目的值也永远不会再次成为数字#1,在最后创建/删除项目后将继续编号。
有没有办法在不删除和创建新画布的情况下重置编号?

import tkinter
t = tkinter.Canvas()
t.pack()
for j in range (5):
    for i in range(1, 11):
        item=t.create_line((0, i, i, 100), tag= 'line')
    print(t.find_all())
    t.delete("all")

mainloop()

在上面的代码中创建 5 个新项目后,我删除了它们并期望重置编号顺序。

结果我得到了

(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)
(11, 12, 13, 14, 15)
(16, 17, 18, 19, 20)
(21, 22, 23, 24, 25)

但我想得到:

(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)
(1, 2, 3, 4, 5)

标签: tkinter

解决方案


有没有办法在 tkinter Canvas 上重新开始(重置)项目编号?

不,那里没有。


推荐阅读