相信用过 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 实现简单画板相关推荐

  1. python做动画视频教程_Python入门教程:Python创建动画竟然这么简单!

    数据下载地址:www.drugabuse.gov/sites/default/files/overdose_data_1999-2015.xls. 我们将用Matplotlib和Seaborn绘图,用 ...

  2. python怎么建立画板_Python基于opencv实现的简单画板功能示例

    本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...

  3. python 搭建的http 动态服务器_Python 创建HTTP服务器的简单示例

    这篇文章主要为大家详细介绍了Python 创建HTTP服务器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  4. Python界面编程第十九课:Pyside2 (Qt For Python)创建菜单

    先看完整代码: from PySide2.QtWidgets import QApplication,QMainWindow, QAction import sys from PySide2.QtGu ...

  5. python 实现简单画板_Python图像处理之简单画板实现方法

    本文实例讲述了Python图像处理之简单画板实现方法.分享给大家供大家参考,具体如下: Python图像处理也是依赖opencv的Python接口实现的,Python语言简单易懂,简洁明了.本次实现画 ...

  6. 独家 | 手把手教你用Python创建简单的神经网络(附代码)

    作者:Michael J.Garbade 翻译:陈之炎 校对:丁楠雅 本文共2000字,建议阅读9分钟. 本文将为你演示如何创建一个神经网络,带你深入了解神经网络的工作方式. 了解神经网络工作方式的最 ...

  7. python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...

    原标题:推荐 :手把手教你用Python创建简单的神经网络(附代码) 作者:Michael J.Garbade:翻译:陈之炎:校对:丁楠雅 本文共2000字,9分钟. 本文将为你演示如何创建一个神经网 ...

  8. python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码

    在做工程闲暇时间,将做工程过程比较重要的一些内容备份一下,如下内容段是关于演示python如何创建和使用一个简单的元类的内容,应该能对小伙伴们也有用途. #!/usr/bin/env python # ...

  9. python 创建文件_Python入学首次项目,新手必看,简单易操作

    继昨天文章python软件pycharm安装教程之后,今天则给新手小白们分享一哈,怎么制作并创建文件.print "hello world": 如后期需要资料文件的则可以私信留言, ...

最新文章

  1. 千里之堤毁于蚁穴------重点项目不能交付之谜(一)泥淖中的验收测试
  2. AlphaFold和RoseTTAFold双剑合璧,成功预测蛋白质复合体结构,北大校友领衔登上Science...
  3. oracle数据库克隆工具,OracleCopier
  4. 我的Ubuntu9.10安装与配置100
  5. 【操作】vue-markdown使用
  6. MyBaits resultMap 返回值与对象不匹配处理
  7. 余额宝上线新功能,可以跟亲朋好友一起攒钱了
  8. oracle ogg 删除,OGG导致归档无法RMAN删除一例
  9. java jetty的classpath_java代码启动jetty
  10. php数组合成函数,PHP合并数组函数array_merge用法分析
  11. 传统形态抗锯齿 2.0
  12. maya python 弹出窗口_Open Project Folder (python in maya)
  13. 如何使用SC7A20
  14. 纯CSS 实现知乎滑动广告效果
  15. 银行数字化转型导师坚鹏:金融科技与数字化转型成功案例
  16. beeline执行sql语句_beeline执行sql脚本交易
  17. 跨境电商wish账户被禁用暂停的原因有哪些?wish店铺封号注意事项
  18. 交易思想之顺大势逆小势
  19. 笔记本电脑英文技术规格解释
  20. 天纵智能软件快速开发平台甘特图插件

热门文章

  1. Android开机启动速度优化 app启动速度优化
  2. 使用C++实现谷歌身份验证器(Google Authenticator)
  3. ​度小满金融大数据架构实践
  4. 1、从1加到100的和
  5. 食物과 學問의 萃聚
  6. android bootcamp 2019 之 Core audio
  7. 智能产品工厂测试软件,人工智能如何帮助工厂做质量检测
  8. 解决 SecureCRT 和 SecureFX 中文乱码
  9. 【UCIe】UCIe 数据完整性
  10. Java成员方法getinfo_成员方法