1. 框架代码
用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 PYTHON 源文件,
在代码编辑器中,输入以下框架代码
1 from kivy.app import App
2 from kivy.uix.widget import Widget
3
4
5 class MyPaintWidget(Widget):
6 pass
7
8
9 class MyPaintApp(App):
10 def build(self):
11 return MyPaintWidget()
12
13
14 if __name__ == '__main__':
15 MyPaintApp().run()
运行上面的代码,将显示一个黑色背景的窗口
看起来很没劲的样子,不过你可不要小瞧这几行代码。这些就是简易画板的框架代码,它就像是程序的骨架,后面咪博士将会带领大家在这副骨架上添加各种新功能,逐步丰富和完善应用。
第 5 行 class MyPaintWidget(Widget): 从类 Widget 继承,构造我们的自定义窗口部件 MyPaintWidget。画板的主要逻辑将在 MyPaintWidget 这个类中实现。现在我们只写了一个 pass (第 6 行),相当于是占位符,先让整段代码跑起来,具体的功能,我们将在后面的教程中补充。
第 12 行 return MyPaintWidget() 在应用初始化时(调用 build 方法)创建并返回自定义窗口部件对象 MyPaintWidget
2. 添加交互
现在咱们的自定义窗口部件啥也干不了,接下来我们要尝试让它能够响应用户的动作。
代码如下:
1 from kivy.app import App
2 from kivy.uix.widget import Widget
3
4
5 class MyPaintWidget(Widget):
6 def on_touch_down(self, touch):
7 print(touch)
8
9
10 class MyPaintApp(App):
11 def build(self):
12 return MyPaintWidget()
13
14
15 if __name__ == '__main__':
16 MyPaintApp().run()
运行修改后的代码,仍然显示一个黑色的窗口,似乎没什么变化。但是,当你用鼠标在窗口中点击的时候,发现在 PyCharm 的控制台有输出,而且随着点击位置的不同,输出的数字也会变化。
当用户在窗口上用鼠标点击的时候,将触发 MyPaintWidget 的 on_touch_down 方法(第 6 行)。on_touch_down 方法的 touch 参数,包含了鼠标点击时的位置信息。这里,我们还没实现什么有用的交互,只是把鼠标点击的位置信息输出到控制台,即第 7 行代码 print(touch)
【思考】
用本节的应用做实验,思考 kivy 采用的坐标系统是什么样的?(原点在哪里?x 和 y 的方向如何?)
原文链接:http://www.ipaomi.com/2017/11/15/kivy-中文教程-实例入门-简易画板-simple-paint-app:1-自定义窗口部/
分享到:
相关推荐
几何画板实例教程:模拟时钟.doc
几何画板教程、数学题目实例,初中数学高中数学经典例题
(自适应手机端)HTML5响应式手机应用教程网站源码 APP应用软件下载pbootcms网站模板 ...4:附带测试数据、安装教程、入门教程、安全及备份教程。 5:后台直接修改联系方式、传真、邮箱、地址等,修改更加方便
这是一个struts2实例 涉及的技术包括: 1.自定义过滤器 2.文件上传下载 3.登录功能 等等
上篇博文代码实现了Android自带的preference组件,本文将通过实例讲解自定义preference组件。 主要通过以下几步来实现: 1.定义需要的layout布局res->layout->xml文件; 2.通过继承Preference类,来实现自定义...
本实例,使用ShuttleESB完成简单的功能。 主要功能就是:从客户端发送消息,服务端接收。 实例简单,且含源代码。 这是本实例中,项目介绍: QuickStart.Shuttle.Client:客户端 QuickStart.Shuttle.Messages:...
几何画板实例教程_模拟时钟.doc
android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> android:name=".ImagesWidgetProvider"> android:name="android.appwidget.action.APPWIDGET_UPDATE" /> android:name="android...
对于android项目开发来说,常常会用到Spinner实现下拉框的效果。而对于Spinner加载适配器的方法有多种: 1.直接加载android自带的ArrayAdapter,...2.Spinner中文本框显示样式; 3.Spinner下拉菜单框显示样式;
本教程一共361页,是一本十分完整的教程。同时其内容也非常丰富,包含各种齿轮的分析计算方法以及出各种数据报告等等。KISSsoft是一款专业的齿轮分析软件,对需要的人有极大帮助!
塑料模具综合设计入门实例2简易防护罩塑模设计实例2.pptx
的几何画板实例教程.pdf的几何画板实例教程.pdf的几何画板实例教程.pdf的几何画板实例教程.pdf的几何画板实例教程.pdf
kafka版本:kafka_2.11-0.9.0.1 kafka jar包版本:0.9.0.1 ...kafka集群:192.168.1.101,192.168.1.102,192.168.1.103 partition分发策略主要是自定义Partitioner的实现类,通过根据key和分区数量来实现
Android 源码演示5种toast显示效果,一共是以下几种演示:默认的Toast显示、自定义位置的Toast显示、带图片的Toast显示、完全自定义的Toast显示、长时间的Toast显示,Android 自定义5种toast显示效果。有的Toast效果...
MATLAB APP Design 是一套有关MATLAB APP窗口化设计的教程,着重讲解了APP设计的基础知识及常见实例讲解。 1-MATLAB APP Design-图像的输入与输出 2-MATLAB APP Design-下拉菜单栏的使用 3-MATLAB APP Design-切换...
Access 2010中文版入门与实例教程.张强等 PDF,供使用ACCESS2010版本的朋友下载学习使用,分享!
为大家分享一套Android widget窗口小部件用法实例集源码,在这个例子中,将涉及到一些大家非常熟悉而且非常有用的窗体UI组件的用法,比如Button按钮、textView、Editview编辑框、Checkbox选择框、RadioGroup单选框、...
今天给大家分享一套YOLO8的视频教程,《YOLOv8自定义对象检测、实例分割、目标跟踪从训练到部署》,2023年新课,视频+源码+课件+数据下载。 章节1:YOLOv8介绍与安装环境测试 章节2:YOLOv8模型结构与源码详解 章节3...
1.[python入门教程]将excel导入到sqlite的方法代码 2.[python入门教程]Python爬取微博实例分析 3.[python入门教程]python基础常识大全 4.[python入门教程]Python3解决中文字符输出乱码的方法 5.[python入门教程]...