python 创建画板,Python 实现简单画板
相信用过 Windows 的同学一定都对 Windows 自带的画板不陌生吧,虽然功能简单却也还实用。那作为一名程序员,你是否想过自己实现这样一个画板呢?!
来吧,想自己实现画板的童鞋,和实验楼课程一起,利用 Pygame 模块来自己实现一个画板。
画板效果图:
此处输入图片的描述
Pygame 简介:
项目主要利用 Pygame 模块来进行开发,所以先简单的介绍一下 Pygame 。
Pygame 是跨平台 Python 模块,专为电子游戏设计。包含图像、声音。创建在 SDL 基础上,允许实时电子游戏研发而无需被低级语言,如 C 语言或是更低级的汇编语言束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)完全简化位游戏逻辑本身,所有的资源结构都可以由高级语言提供,如 Python。
利用 Pygame 可以比较方便地实现很多经典的 2D 小游戏,比如 Flappy bird 、推箱子、象棋等,更有国外 12 岁小孩用 Pygame 开发了一个名为《兔子和獾》的塔防游戏。
所以只要你能积极开动想象力, Pygame 就能带来无限可能。
Pygame 程序的主要流程图如下:
此处输入图片的描述
开发准备——安装Pygame:
项目主要利用 Pygame 模块来进行开发,首先我们需要通过 pip 来安装 Pygame 模块。
$ sudo pip install pygame
安装完成之后可以进入 Python 的交互界面,通过以下命令查看安装的 Pygame 版本。
> import pygame> pygame.ver
此处输入图片的描述
项目目录树:
最终,我们完整的项目目录树为:
/home/shiyanlou/Code/Drawing_Board/
|-- Board.py
`-- images/
|-- big.png
|-- brush.png
|-- pen1.png
|-- pen2.png
`-- small.png
说明:
Board.py :画板程序,可以通过 vim 命令或者 gedit 编辑器进行创建和编辑。
images :图片资源文件夹
程序框架:
首先先介绍一下程序的主体框架,所涉及的类,后边再逐一深入实现。
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
import math
# 画笔类
class Brush:
pass
# 菜单类
class Menu:
pass
# 画板类
class Painter:
pass
# 主函数
def main():
pass
if __name__ == '__main__':
main()
说明:
Brush 类是画笔类。负责管理加载画笔笔刷,调整画笔颜色、大小以及画笔绘制的工作。
Menu 类是菜单类。负责管理和绘制菜单。菜单的功能包括允许切换画笔,调整画笔大小和选择画笔颜色。
Painter 类是画板类。是整个程序最核心的类,负责统筹其它两个类对象的调度以及事件的监听。
main 函数负责创建 Painter 对象,并且让画板运行。
具体实现
下面就开始编写代码,实现类和主函数,由于代码较多,如果想查看详细的代码和实现步骤,可以点击【Python 实现简单画板 】进行查看~
Brush 类
Menu 类
Painter 类
main 函数
python 创建画板,Python 实现简单画板相关推荐
- python做动画视频教程_Python入门教程:Python创建动画竟然这么简单!
数据下载地址:www.drugabuse.gov/sites/default/files/overdose_data_1999-2015.xls. 我们将用Matplotlib和Seaborn绘图,用 ...
- python怎么建立画板_Python基于opencv实现的简单画板功能示例
本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...
- python 搭建的http 动态服务器_Python 创建HTTP服务器的简单示例
这篇文章主要为大家详细介绍了Python 创建HTTP服务器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...
- Python界面编程第十九课:Pyside2 (Qt For Python)创建菜单
先看完整代码: from PySide2.QtWidgets import QApplication,QMainWindow, QAction import sys from PySide2.QtGu ...
- python 实现简单画板_Python图像处理之简单画板实现方法
本文实例讲述了Python图像处理之简单画板实现方法.分享给大家供大家参考,具体如下: Python图像处理也是依赖opencv的Python接口实现的,Python语言简单易懂,简洁明了.本次实现画 ...
- 独家 | 手把手教你用Python创建简单的神经网络(附代码)
作者:Michael J.Garbade 翻译:陈之炎 校对:丁楠雅 本文共2000字,建议阅读9分钟. 本文将为你演示如何创建一个神经网络,带你深入了解神经网络的工作方式. 了解神经网络工作方式的最 ...
- python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...
原标题:推荐 :手把手教你用Python创建简单的神经网络(附代码) 作者:Michael J.Garbade:翻译:陈之炎:校对:丁楠雅 本文共2000字,9分钟. 本文将为你演示如何创建一个神经网 ...
- python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码
在做工程闲暇时间,将做工程过程比较重要的一些内容备份一下,如下内容段是关于演示python如何创建和使用一个简单的元类的内容,应该能对小伙伴们也有用途. #!/usr/bin/env python # ...
- python 创建文件_Python入学首次项目,新手必看,简单易操作
继昨天文章python软件pycharm安装教程之后,今天则给新手小白们分享一哈,怎么制作并创建文件.print "hello world": 如后期需要资料文件的则可以私信留言, ...
最新文章
- 千里之堤毁于蚁穴------重点项目不能交付之谜(一)泥淖中的验收测试
- AlphaFold和RoseTTAFold双剑合璧,成功预测蛋白质复合体结构,北大校友领衔登上Science...
- oracle数据库克隆工具,OracleCopier
- 我的Ubuntu9.10安装与配置100
- 【操作】vue-markdown使用
- MyBaits resultMap 返回值与对象不匹配处理
- 余额宝上线新功能,可以跟亲朋好友一起攒钱了
- oracle ogg 删除,OGG导致归档无法RMAN删除一例
- java jetty的classpath_java代码启动jetty
- php数组合成函数,PHP合并数组函数array_merge用法分析
- 传统形态抗锯齿 2.0
- maya python 弹出窗口_Open Project Folder (python in maya)
- 如何使用SC7A20
- 纯CSS 实现知乎滑动广告效果
- 银行数字化转型导师坚鹏:金融科技与数字化转型成功案例
- beeline执行sql语句_beeline执行sql脚本交易
- 跨境电商wish账户被禁用暂停的原因有哪些?wish店铺封号注意事项
- 交易思想之顺大势逆小势
- 笔记本电脑英文技术规格解释
- 天纵智能软件快速开发平台甘特图插件