tkinter canvas 画多个矩形
时间: 2023-06-17 09:05:33 浏览: 125
可以使用Tkinter的Canvas组件画多个矩形,以下是一个基本的例子:
```python
import tkinter as tk
# 创建窗口
root = tk.Tk()
# 创建Canvas组件
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
# 画多个矩形
canvas.create_rectangle(50, 50, 100, 100, fill="red")
canvas.create_rectangle(150, 50, 200, 100, fill="green")
canvas.create_rectangle(250, 50, 300, 100, fill="blue")
# 进入消息循环
root.mainloop()
```
在上面的例子中,我们创建了一个窗口,并在窗口中创建了一个Canvas组件。然后,我们使用Canvas组件的create_rectangle()方法画了三个矩形,每个矩形有不同的颜色和位置。最后,我们进入了Tkinter的消息循环以启动窗口。你可以根据需要调整矩形的位置和颜色。
相关问题
tkinter canvas 画多个矩形,怎么区分不同的矩形
你可以在每个矩形上添加一个标签或 ID,以便在后续操作中区分不同的矩形。
在 Tkinter 中,你可以使用 `create_rectangle` 方法来创建矩形,并指定其左上角和右下角的坐标。此外,该方法还支持在创建矩形时添加标签或 ID。
例如,你可以使用以下代码创建两个矩形,并为它们分别指定 ID:
```python
import tkinter as tk
# 创建 Tkinter 窗口
root = tk.Tk()
# 创建 Canvas
canvas = tk.Canvas(root, width=200, height=200)
canvas.pack()
# 创建第一个矩形,并指定 ID 为 rect1
rect1 = canvas.create_rectangle(50, 50, 100, 100, fill='red', tags='rect1')
# 创建第二个矩形,并指定 ID 为 rect2
rect2 = canvas.create_rectangle(150, 50, 200, 100, fill='green', tags='rect2')
# 运行主循环
root.mainloop()
```
在这个例子中,我们创建了两个矩形,并分别指定了它们的 ID 为 `rect1` 和 `rect2`。你可以使用这些 ID 来区分不同的矩形,例如:
```python
# 获取矩形的坐标
x1, y1, x2, y2 = canvas.bbox('rect1')
print(f"rect1 坐标:({x1}, {y1}) - ({x2}, {y2})")
# 修改矩形的颜色
canvas.itemconfigure('rect2', fill='blue')
# 删除矩形
canvas.delete('rect1')
```
在这些操作中,我们使用 `bbox` 方法获取了 `rect1` 矩形的坐标,并使用 `itemconfigure` 方法修改了 `rect2` 矩形的颜色。我们还使用 `delete` 方法删除了 `rect1` 矩形。
tkinter canvas 自动创建多个矩形时,怎么自动标识?
你可以使用 `tags` 参数来为每个矩形添加一个标识符,这样就可以轻松地对它们进行操作了。
例如:
```python
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
for i in range(5):
rect = canvas.create_rectangle(10+i*50, 10, 50+i*50, 50, fill='blue', tags=('rect', f'rect{i+1}'))
root.mainloop()
```
在上面的示例中,我们使用 `create_rectangle` 方法创建了 5 个矩形,并为它们设置了两个标识符:'rect' 和 'rect1' 到 'rect5'。这样就可以使用 `canvas.find_withtag()` 方法来获取指定标识符的所有图形了。
例如,我们可以使用下面的代码来获取所有标识符为 'rect' 的图形:
```python
rects = canvas.find_withtag('rect')
```
或者,我们可以使用下面的代码来获取标识符为 'rect3' 的图形:
```python
rect3 = canvas.find_withtag('rect3')
```
阅读全文