Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter画布重置ID';s_Python_Tkinter_Tkinter Canvas - Fatal编程技术网

Python Tkinter画布重置ID';s

Python Tkinter画布重置ID';s,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我正在为学校的一个高级研究项目编写Tkinter GUI 在代码中的某个时刻,我需要重置用于为新添加创建id值的计数器。除了更换整个画布,有人知道这是否可行吗?基本上,在添加了一堆线和椭圆后,我需要将它们全部删除,并在1处重新启动计数器以获取新的线和椭圆 其次,我选择了替换整个画布的方法,之后,winfo_get()方法中没有显示任何内容。为什么会这样?我知道我正在尝试做TKinter不应该做的事情,但这必须是可能的。不可能重置画布生成的id号 您删除并重新创建画布的解决方案是一个合理的选择,尽

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

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


其次,我选择了替换整个画布的方法,之后,winfo_get()方法中没有显示任何内容。为什么会这样?我知道我正在尝试做TKinter不应该做的事情,但这必须是可能的。

不可能重置画布生成的id号


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

您所说的
winfo\u get()
方法是什么意思?没有这样的方法。谢谢你,我感觉第一句话就是这样。是的,有很多更好的方法可以做到这一点,尽管考虑到这个项目中已经编写的庞大的代码库,我必须解决这个问题。好吧,我将把这个问题留给任何试图这样做的人作为一个警告。非常感谢!我以0-n个对象的比例在一个dict中跟踪每个对象。当画布上的对象数量增加或减少时,画布会增加ID而不是重置ID,这一事实对我来说真的是一团糟(如OP所示)。不过,这是一个很好的信息。迫使我找到更好的方法。标签似乎是下一个最好的尝试方法。