【问题标题】:Tkinter Canvas reset ID'sTkinter Canvas 重置 ID
【发布时间】:2015-05-20 09:33:22
【问题描述】:

我正在为学校的一个高级研究项目编写一个 Tkinter GUI。

我需要在代码中的某个位置重置用于为新添加创建 id 值的计数器。除了更换整个画布之外,有谁知道这是否可能?基本上,在添加了一堆线条和椭圆之后,我需要将它们全部删除并在 1 处重新启动计数器以获取新的。

其次,我采取了替换整个画布的路径,之后,winfo_get() 方法中没有任何内容出现。为什么会这样?我知道我正在尝试做一些 TKinter 不应该做的事情,但它一定是可能的。

【问题讨论】:

  • winfo_get() 方法是什么意思?没有这种方法。

标签: python tkinter tkinter-canvas


【解决方案1】:

无法重置画布生成的 ID 号。

您删除和重新创建画布的解决方案是一个合理的选择,尽管它可能不是必需的。可能有更好的方法来做任何你认为可以通过重置画布 ID 来解决的问题。例如,您可以生成自己的 id,并将每个 id 与每个画布项关联为标签。然后,您可以随时重置 ID。

【讨论】:

  • 谢谢,我感觉第一句话就是这样。是的,有很多更好的方法可以做到这一点,尽管考虑到这个项目中已经编写的代码库的巨大规模,我必须解决它。好吧,我会把这个问题留给任何试图这样做的人的警告。非常感谢!
  • 我在 dict 中以 0 - n 个对象的规模跟踪每个对象。当画布上的对象数量增加或减少时,画布会增加 ID 而不是重置 ID,这一事实确实让我(作为 OP)搞砸了。这是很好的信息。迫使我找到更好的方法。标签似乎是下一个最好的尝试方法。
猜你喜欢
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多