tkinter实现画图板
时间: 2024-09-14 07:02:24 浏览: 48
tkinter画图Canvas应用实例
5星 · 资源好评率100%
Tkinter是Python内置的标准图形用户界面(GUI)库,用于创建简单的窗口应用程序。要使用Tkinter实现一个基本的绘图板,你可以利用`ttk`模块中的`Canvas`组件,这个组件提供了绘制线条、矩形、圆形等各种形状的功能。
以下是一个简单的例子,展示了如何创建一个带有鼠标移动监听事件的绘图板:
```python
import tkinter as tk
from tkinter import ttk
class DrawingBoard:
def __init__(self, master):
self.canvas = ttk.Canvas(master, width=600, height=400, bg="white")
self.canvas.pack()
# 鼠标按下时开始绘画
self.canvas.bind("<ButtonPress-1>", self.start_draw)
# 鼠标移动时绘画
self.canvas.bind("<B1-Motion>", self.draw)
# 鼠标释放时结束绘画并清除线段
self.canvas.bind("<ButtonRelease-1>", self.end_draw)
self.line_id = None
def start_draw(self, event):
self.line_id = self.canvas.create_line(0, 0, 0, 0, fill="blue", width=2) # 初始点为0
def draw(self, event):
x1, y1 = self.canvas.coords(self.line_id) # 获取当前线段起点坐标
x2, y2 = event.x, event.y # 获取鼠标移动的新坐标
self.canvas.coords(self.line_id, x1, y1, x2, y2) # 更新线段坐标
def end_draw(self, event):
self.canvas.delete(self.line_id) # 删除绘制完成的线段
self.line_id = None
root = tk.Tk()
app = DrawingBoard(root)
root.mainloop()
```
在这个例子中,当你在绘图板上按下鼠标左键并拖动时,就会画出一条蓝色的线段。当鼠标松开时,绘制会停止,并且之前画的线段会被删除。
阅读全文