当前位置: 首页 > backend >正文

Python实例题:Python实现简单画板

目录

Python实例题

题目

代码实现

功能说明

基本绘图:

画笔设置:

画布操作:

使用方法

扩展建议

添加更多绘图工具:

增强绘图功能:

改进用户界面:

Python实例题

题目

Python实现简单画板

代码实现

import tkinter as tk
from tkinter import colorchooser, Scale, Frame, Button, Labelclass SimplePaintApp:def __init__(self, root):self.root = rootself.root.title("简单画板")self.root.geometry("800x600")# 设置默认值self.brush_size = 2self.brush_color = "#000000"self.last_x = Noneself.last_y = None# 创建画布self.canvas = tk.Canvas(self.root, bg="white", cursor="cross")self.canvas.pack(fill=tk.BOTH, expand=True)# 绑定鼠标事件self.canvas.bind("<B1-Motion>", self.paint)self.canvas.bind("<ButtonRelease-1>", self.reset)# 创建工具栏self.create_toolbar()def create_toolbar(self):"""创建工具栏"""toolbar = Frame(self.root)toolbar.pack(side=tk.TOP, fill=tk.X)# 画笔大小选择size_label = Label(toolbar, text="画笔大小:")size_label.pack(side=tk.LEFT, padx=5, pady=5)size_scale = Scale(toolbar, from_=1, to=20, orient=tk.HORIZONTAL, length=100, command=self.set_brush_size)size_scale.set(self.brush_size)size_scale.pack(side=tk.LEFT, padx=5, pady=5)# 颜色选择按钮color_btn = Button(toolbar, text="选择颜色", command=self.choose_color)color_btn.pack(side=tk.LEFT, padx=5, pady=5)# 清除按钮clear_btn = Button(toolbar, text="清除画布", command=self.clear_canvas)clear_btn.pack(side=tk.LEFT, padx=5, pady=5)def paint(self, event):"""绘制线条"""if self.last_x and self.last_y:self.canvas.create_line((self.last_x, self.last_y, event.x, event.y),width=self.brush_size,fill=self.brush_color,capstyle=tk.ROUND,smooth=True)self.last_x = event.xself.last_y = event.ydef reset(self, event):"""重置坐标"""self.last_x = Noneself.last_y = Nonedef set_brush_size(self, size):"""设置画笔大小"""self.brush_size = int(size)def choose_color(self):"""选择画笔颜色"""color = colorchooser.askcolor()[1]if color:self.brush_color = colordef clear_canvas(self):"""清除画布"""self.canvas.delete("all")if __name__ == "__main__":root = tk.Tk()app = SimplePaintApp(root)root.mainloop()    

功能说明

这个简单画板包含以下功能:

  • 基本绘图

    • 使用鼠标左键拖动绘制线条
    • 支持连续绘制
  • 画笔设置

    • 可调整画笔大小(1-20 像素)
    • 可选择任意颜色
  • 画布操作

    • 一键清除所有绘制内容

使用方法

  • 运行程序:
python simple_paint.py
  • 在画布上按住鼠标左键并拖动即可开始绘图

  • 使用工具栏进行设置:

    • 拖动滑块调整画笔大小
    • 点击 "选择颜色" 按钮更改画笔颜色
    • 点击 "清除画布" 按钮清空所有内容

扩展建议

如果你想扩展这个画板的功能,可以考虑以下方向:

  • 添加更多绘图工具

    • 矩形、圆形等形状工具
    • 文本输入工具
    • 橡皮擦功能
  • 增强绘图功能

    • 撤销 / 重做操作
    • 保存画布为图片
    • 填充颜色功能
  • 改进用户界面

    • 添加状态栏显示当前工具和设置
    • 支持键盘快捷键
    • 添加菜单系统
http://www.xdnf.cn/news/7968.html

相关文章:

  • 网络安全之身份验证绕过漏洞
  • 【AI+开发】什么是LLM、MCP和Agent?
  • 容器网络中的 veth pair 技术详解
  • 求无符号字符型数据乘积的高一半
  • 隧道自动化监测解决方案
  • 【攻防实战】MacOS系统上线Cobalt Strike
  • 高并发内存池|六、page cache的设计
  • 13、自动配置【源码分析】-自动包规则原理
  • Springboot2
  • Qt enabled + geometry 属性(2)
  • 微信小游戏流量主广告自动化浏览功能案例5
  • 【IP101】图像质量评价体系:从主观评价到客观度量的完整解析
  • RL电路的响应
  • Spring AI 1.0 GA 于 2025 年 5 月 20 日正式发布,都有哪些特性?
  • 防火墙高可靠性
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月21日第84弹
  • nlohmann json:检查类型并取出数据
  • 【八股战神篇】Spring高频面试题汇总
  • 企业数字化转型是否已由信息化+自动化向智能化迈进?
  • YCKC【二分答案专题】题解
  • 关于C++使用位运算交换变量值的分析
  • Vue学习记录
  • docker面试题(5)
  • LeetCode 1004. 最大连续1的个数 III
  • PH热榜 | 2025-05-21
  • 影刀Fun叉鸟-打刀刀
  • PyTorch的基本操作
  • 5月21日星期三今日早报简报微语报早读
  • 架构的设计
  • WebGL2混合与雾