今天,带领大家制作一个铅笔类,实现在界面内自由画图的功能,类似一个铅笔在画布上绘图。通过这个课题,我们可以学习以下内容:

Canvas自由绘图的基本思路鼠标事件绑定基本用法如何改变鼠标形状不赘述,先上代码,如下图所示。

铅笔类的初始化

鼠标绑定事件

测试绘图

好了,代码输入编辑器,【运行】看下效果吧。

可爱吗?使用程序画的小猴子

怎么样?赶紧试试吧,用自己制作的铅笔画个简笔画,有成就感哦!兴趣之余别忘了我们的学习内容哦,下面梳理一下:

Canvas自由绘图的基本思路

例子中Pen类的定义起始就是Canvas自由绘图的应用。对本程序实现思路进行梳理:

【第一步】点击鼠标,打开绘图开关(self.start实现的功能)

【第二步】当鼠标拖动(按住鼠标左键移动)时判断鼠标位置是否在画板内并且是否打开绘图开关,如果在画板内(self.prex、self.prey均大于零)且已经打开画图开关,则将鼠标前一点位置和当前位置连接,然后将前一点位置设置为当前位置,依次类推即可(self.move实现的功能)

【第三步】鼠标移动到目标位置后,释放鼠标,关闭绘图开关,将鼠标前一点位置设置为初始状态(self.end实现功能)

鼠标事件绑定基本用法

程序中用到了以下几种:

self.bind('', self.move):绑定鼠标移动事件self.bind('', self.start):绑定鼠标单击事件(单击当然是左键哦)self.bind('', self.end):绑定鼠标释放事件self.bind('', self.clean):绑定鼠标右键单击事件

其它还有好多,大家自行学习,我们主要梳理下用法,其中传入的绑定时间函数第一个参数是self(类中是这样),第二个参数必须传入event事件(名字可以自定义)。如果不是在类中使用的话,传入的第一个参数就必须是event事件。

如何改变鼠标形状

三种方式设置属性

widget['cursor'] = cursor_imgwidget.config('cursor' = cursor_img)widget.cursor = cursor_img其中鼠标形状有以下几种:"arrow"、"circle"、"clock"、"cross"、"dotbox"、"exchange"、"fleur"、"heart"、"heart"、"man"、"mouse"、"pirate"、"plus"、"shuttle"、"sizing"、"spider"、"spraycan"、"star"、"target"、"tcross"、"trek"、"watch"

感兴趣的朋友们自己设置下试试哦。。。

转载请注明出处(百家号:Python高手养成)

python做gui好吗_使用Python制作一个铅笔类(Python GUI编程)相关推荐

  1. python做什么项目好_推荐两个牛逼的Python项目

    首先能问出这种问题的一定没好好看我之前写的这篇文章:丧心病狂的Github技巧,你要是学会了这篇文章的技巧,我相信你肯定不会再问我怎么找项目了. 但是看着有一两千的人给我的留言点赞,都想要Python ...

  2. python可视化包选哪个_给大家介绍一个很酷的 Python 手绘风格可视化神包:cutecharts...

    https://github.com/chenjiandongx/cutecharts 今天,给大家介绍一个很酷的 Python 手绘风格可视化神包:cutecharts.和 Matplotlib . ...

  3. python做动态数据采集仪代理_九四采集器(py/python)采集器设置动态代理IP图文教程...

    说明:为什么要使用动态代理进行采集,主要是因为针对封ip之类问题解决,使用了动态代理ip就无法进行ip封禁,不影响采集. 直入正题,首先要配置搭建采集器,这里不做赘述. 注:下载地址在底部. 采集器配 ...

  4. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  5. python做自动化测试的优点_乐搏讲自动化测试-python语言特点及优缺点(5)

    相信小伙伴们都知道,随着软件测试行业的发展和进步自动化测试已经成为必然.在竞争日益激烈的市场环境中也是你升职加薪的利器. 所以,小编决定从今天起!将要系统.连续.高质量的持续更新「整套自动化测试」文章 ...

  6. python做作业没头绪_使用Python做作业

    python做作业没头绪 Applying OpenCV and Tesseract to do your math-homework 应用OpenCV和Tesseract进行数学作业 The pos ...

  7. python一般做什么游戏好玩_只需要9步100行Python代码就可以实现一个简单又好玩的弹球游戏...

    今天给大家分享一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python写小游戏还是蛮方便的,蛮有意思的~~ 需要本文源码:私信回复[源码]即可获取 ...

  8. python做数据分析的包_用Python做数据分析,Numpy,Pandas,matp

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用Python做数据分析,Numpy,Pandas,matplotlib是怎么也绕不开的三个包,我最开始学习pandas是看的<利用Python进行 ...

  9. python做数据分析难么_做统计学习,数据分析应该学Python还是R?

    如果你是数据分析领域的新兵,那么你一定很难抉择--在进行数据分析时,到底应该使用哪个语言,R还是Python?在网络上,也经常出现诸如"我想学习机器语言,我应该用哪个编程语言"或者 ...

最新文章

  1. 计算机为什么找不到c盘d盘,电脑不显示是什么盘?是C盘还是D盘?怎么才能显示出来呢?...
  2. java多线程实现归并排序_利用多线程对数组进行归并排序
  3. Hyperscan-5.1.0 安装
  4. 学习linux之用户-文件-权限操作
  5. Nginx虚拟目录alias和root目录
  6. 常见排序查询算法Java代码实现
  7. 课题申报书范文_课题申报书(范文5篇)
  8. pythonself用法_全面理解python中self的用法
  9. java 蓝桥杯算法训练 P0501
  10. 马尔科夫过程与吉布斯采样
  11. linux cp覆盖每次都有提示
  12. AnyTXT Searcher中文版-比Google Desktop都牛连everything软件作者都拍手称赞的文本搜索工具
  13. 模拟调制解调matlab仿真实验报告,基于MATLAB调制解调仿真
  14. 项目管理常用的七大工具
  15. 花空流水去,过往皆云烟
  16. 【专题5: 硬件设计】 之 【39.案例三:碎纸机,光电传感器电路原理图】
  17. 斐讯路由器怎样设置虚拟服务器,斐讯路由器怎么设置_p.to路由器设置界面-WIFI之家...
  18. 最全各种浏览器网页星号点号密码查看最简方法(技术小白也能看懂使用)
  19. iOS开发中plist文件的创建与简单读取
  20. HTTP响应状态码及含义

热门文章

  1. 云控系统+海外抖音TikTok直播公会,让直播变得更加容易
  2. 瑞芯微电子RockChip(RK3588)
  3. Python每日一练(3)-编程三种境界
  4. win7系统不显示宽带链接网络连接服务器,Win7系统电脑宽带连接出现未识别网络的解决方法。...
  5. Python爬虫实习笔记 | Week4 项目数据爬取与反思
  6. SD卡格式化恢复怎么操作?只用这招!
  7. IEDA中的Git操作
  8. 【渝粤教育】电大中专新媒体营销实务 (9)作业 题库
  9. Dell XPS15 9570 拆机升级内存
  10. pages转换成html,怎么把pages文稿转为HTML?