创建一个窗体,内部有一个画布,点击画布会画出一个矩形,并且在画布中显示鼠标点击点的x和y的坐标
时间: 2024-02-11 16:06:50 浏览: 97
好的,您可以使用 Python Tkinter 模块来创建窗体和画布,并使用鼠标点击事件来画出矩形和显示坐标。以下是示例代码:
```python
from tkinter import *
class App:
def __init__(self, master):
self.master = master
self.canvas = Canvas(master, width=300, height=300, bg='white')
self.canvas.pack(expand=YES, fill=BOTH)
self.canvas.bind("<Button-1>", self.on_left_click)
self.rect = None
self.x, self.y = 0, 0
self.label = Label(master, text='x: 0, y: 0')
self.label.pack()
def on_left_click(self, event):
if self.rect:
self.canvas.delete(self.rect)
self.x, self.y = event.x, event.y
self.label.config(text=f'x: {self.x}, y: {self.y}')
self.rect = self.canvas.create_rectangle(self.x, self.y, event.x, event.y)
root = Tk()
app = App(root)
root.mainloop()
```
在这个示例中,我们创建了一个 `App` 类来处理主窗口的创建和事件处理。在 `__init__` 方法中,我们创建了一个 `Canvas` 对象,并将其放置在主窗口中。我们还绑定了 `<Button-1>` 事件,当用户单击鼠标左键时,它将调用 `on_left_click` 方法。
在 `on_left_click` 方法中,我们首先删除任何之前创建的矩形,然后获取鼠标单击的坐标,并显示在标签中。最后,我们使用 `create_rectangle` 方法创建一个矩形,并将其保存在 `self.rect` 中,以便以后可以删除它。
运行这个程序,您将看到一个窗口,其中包含一个白色背景的画布。单击画布时,将显示一个矩形,并在标签中显示鼠标点击的坐标。
阅读全文