Tkinter 访问 Canvas Loop 在循环外创建的对象
Tkinter access Canvas Objects created by Loop outside the loop
我正在尝试操作一些由 Tkinter Canvas 上的循环创建的 Canvas 对象。不幸的是,我无法访问循环外这些矩形的坐标,只能访问其中一个。我如何访问循环外部循环创建的所有矩形以获取它们的坐标,以及如何操作它们?这个问题可能没有意义,所以如果你不明白请问我,我会尽力解释得更好。谢谢!
for y in range(2):
for x in range(2):
x1 = x*230
y1 = y*230
height = x1 + 200
width = y1 + 200
music_catalog_rect = canvas.create_rectangle((x1, y1, height, width), fill='red')
canvas.move(music_catalog_rect, 180, 20)
您应该将项目存储在某种数据结构中。然后,您可以遍历结构以挑选出特定值或遍历所有值。
例如,您可以将它们存储在列表中:
rects = []
for y in range(2):
for x in range(2):
...
item = canvas.create_rectangle(...)
rects.append(item)
...
这使您可以轻松地遍历所有项目:
for item in rects:
canvas.move(item, ...)
如果保留 x,y 数据很重要,您可以将 x,y 用作字典的键:
rects = {}
for y in range(2):
for x in range(2):
...
item = canvas.create_rectangle(...)
rects[(x,y)] = item
...
然后,您可以执行以下操作:
canvas.move(rects[(3,4)], ...)
我正在尝试操作一些由 Tkinter Canvas 上的循环创建的 Canvas 对象。不幸的是,我无法访问循环外这些矩形的坐标,只能访问其中一个。我如何访问循环外部循环创建的所有矩形以获取它们的坐标,以及如何操作它们?这个问题可能没有意义,所以如果你不明白请问我,我会尽力解释得更好。谢谢!
for y in range(2):
for x in range(2):
x1 = x*230
y1 = y*230
height = x1 + 200
width = y1 + 200
music_catalog_rect = canvas.create_rectangle((x1, y1, height, width), fill='red')
canvas.move(music_catalog_rect, 180, 20)
您应该将项目存储在某种数据结构中。然后,您可以遍历结构以挑选出特定值或遍历所有值。
例如,您可以将它们存储在列表中:
rects = []
for y in range(2):
for x in range(2):
...
item = canvas.create_rectangle(...)
rects.append(item)
...
这使您可以轻松地遍历所有项目:
for item in rects:
canvas.move(item, ...)
如果保留 x,y 数据很重要,您可以将 x,y 用作字典的键:
rects = {}
for y in range(2):
for x in range(2):
...
item = canvas.create_rectangle(...)
rects[(x,y)] = item
...
然后,您可以执行以下操作:
canvas.move(rects[(3,4)], ...)