今天,带领大家制作一个铅笔类,实现在界面内自由画图的功能,类似一个铅笔在画布上绘图。通过这个课题,我们可以学习以下内容:
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高手养成)