如何用tkinter用鼠标绘制矩形的程序。用Python在画布上画画很简单。当用户在画布上单击时,会在前一一个矩形的角和鼠标单击的位置之间绘制一个新的矩形。第一个矩形的左上角将位于位置(0, 0), 右下角将位于用户第一次单击鼠标的位置。第二个矩形将从用户的第一次鼠标单击延伸到第二次鼠标单击,依此类推。
时间: 2023-05-17 12:07:39 浏览: 58
以下是一个用tkinter绘制矩形的程序:
```python
import tkinter as tk
class RectangleDrawer:
def __init__(self, master):
self.master = master
self.canvas = tk.Canvas(master, width=500, height=500)
self.canvas.pack()
self.canvas.bind("<Button-1>", self.on_click)
self.rectangles = []
self.current_rectangle = None
def on_click(self, event):
if self.current_rectangle is None:
self.current_rectangle = [event.x, event.y, event.x, event.y]
else:
self.rectangles.append(self.current_rectangle)
self.current_rectangle = None
self.draw_rectangles()
def draw_rectangles(self):
self.canvas.delete("all")
for rectangle in self.rectangles:
self.canvas.create_rectangle(rectangle[0], rectangle[1], rectangle[2], rectangle[3])
if self.current_rectangle is not None:
self.canvas.create_rectangle(self.current_rectangle[0], self.current_rectangle[1], self.current_rectangle[2], self.current_rectangle[3])
root = tk.Tk()
app = RectangleDrawer(root)
root.mainloop()
```
这个程序创建了一个窗口和一个画布,当用户单击画布时,程序会在画布上绘制一个矩形。程序使用一个列表来存储所有已绘制的矩形,并使用一个变量来存储当前正在绘制的矩形。当用户单击画布时,程序会将当前正在绘制的矩形添加到列表中,并将当前正在绘制的矩形重置为None。程序还定义了一个draw_rectangles函数,用于在画布上绘制所有已绘制的矩形和当前正在绘制的矩形。
阅读全文