Python,Tkinter:如何使用他们的ID或标签获取所有画布对象的句柄?

时间:2016-01-22 10:52:37

标签: python tkinter tkinter-canvas

我想在画布上使用某个标签获取所有矩形的句柄,将它们与网格几何体管理器放在一起(用户可以通过鼠标拖动来移动它们,然后我想"重新排序&# 34;他们为他)。我没有矩形的句柄,但它们都有相同的标签(" moveable_canvas")。从那里我可以转换为项目ID(.find_withtag),但现在呢?我可以使用.itemconfigure等ID,但是如何" grid"它们?

moveable_canvases = self.canv.find_withtag("moveable_canvas")
for canvas_id in moveable_canvases:
    ???.grid(...)

1 个答案:

答案 0 :(得分:2)

找到对象ID

您可以使用画布的各种find *方法来查找所有对象。例如,要获取所有对象ID的列表,您可以执行以下操作:

self.canv.find_all()

要查找具有给定标记的所有内容,您将使用find_withtag而不是find_all

self.canv.find_withtag("moveable_canvas")

将它们排列在网格

您说过,目标是获取这些对象ID,以便您可以使用grid。你不能这样做。 grid仅适用于小部件,而不适用于画布对象。没有解决方法。没有办法将一个转换为另一个。

如果要在网格中排列项目,则必须自己进行数学运算,并使用coordsmove画布方法对齐对象。