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-自定义窗口部/
分享到:
相关推荐
【Android 安卓 App Widget 界面控件使用教程】 Android 安卓系统提供了一种称为 App Widget 的功能,这是一类特殊的用户界面组件,可以让应用程序的部分功能直接出现在用户的主屏幕上,无需打开应用就能进行交互。...
在Android系统中,AppWidget是桌面小部件的实现,它允许开发者将应用程序的功能和信息集成到用户的主屏幕上,用户无需打开应用即可与之交互。这个压缩包“Android -- AppWidget源码.zip”很可能是包含了Android App...
1. **AppWidget提供者(AppWidget Provider)**:这是Android系统与你的AppWidget交互的组件,定义了AppWidget的行为,如接收广播更新、添加、删除或更新AppWidget等。 2. **布局文件(Layout)**:定义了AppWidget...
几何画板是一款强大的数学教学工具,它以图形化的方式帮助学生和教师理解各种几何概念,进行动态演示,解决数学问题。本教程集合了初中数学和高中数学的经典例题,旨在通过实际操作提升学习者的几何直观能力和解决...
一个AppWidget由两部分组成:AppWidget提供者(AppWidgetProvider)和布局文件。AppWidget提供者是Android的BroadcastReceiver子类,它负责处理AppWidget的生命周期事件,如添加、删除或更新。布局文件则定义了App...
AppWidget是Android系统提供的一种组件,它允许开发者在用户的主屏幕上创建自定义的小部件,无需用户启动应用程序。这种功能极大地增强了用户体验,使用户能够快速访问或控制应用的功能,而无需打开应用本身。本文将...
《组态王实例教程入门》是一份专门为初学者设计的指南,旨在帮助用户快速掌握组态王软件的基本操作和应用。组态王是一款强大的工业自动化监控系统开发平台,广泛应用于工业生产过程控制、楼宇自动化、环保监测等领域...
1. **扩展AppWidgetHost**:自定义的Launcher通常会扩展AppWidgetHost,这是一个管理Widget实例的类,负责创建和销毁Widget实例。 2. **处理Widget添加事件**:在JYCLauncher中,需要监听用户添加Widget的请求,...
3. **更新机制**:AppWidget通过`AppWidgetProviderInfo`中的`updatePeriodMillis`属性定期更新,也可以通过广播接收器即时更新。 **二、AppWidget开发步骤** 1. **创建AppWidgetProvider**:继承`...
AppWidget是Android系统提供的一种可以在桌面展示的小部件,它允许用户在主屏幕上放置应用程序的快捷方式或者小型交互式UI,无需打开应用即可进行一些简单的操作。这个"AppWidget学习demo"是一个实例,帮助开发者...
1. 画点:单击【点工具】,然后将鼠标移动到画板窗口中单击一下,就会出现一个点。 2. 画线:单击【直尺工具】,然后拖动鼠标,将光标移动到画板窗口中单击一下,再拖动鼠标到另一位置松开鼠标,就会出现一条线段。 ...
创建自定义窗口意味着你需要定义一个新的`Window`实例,设置其属性如标题、大小、位置等,并在其中放置你需要显示的内容。 ```qml import QtQuick 2.0 Window { id: customWindow width: 300 height: 200 ...
1. **Android小部件(AppWidget)基础** - **定义**:AppWidget是Android系统中的一种轻量级UI组件,可以直接在用户的主屏幕上显示信息并提供快捷操作。 - **组成**:一个AppWidget通常包括布局文件(XML)、提供...
android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> android:name=".ImagesWidgetProvider"> android:name="android.appwidget.action.APPWIDGET_UPDATE" /> android:name="android...
使用说明: 1. 运行程序后会提示输入要祝福的人的名字 2. 输入名字后会自动隐藏命令行窗口 3. 动画窗口中会显示带有个性化祝福的...这个项目适合作为 Pygame 入门学习的实例,也可以作为节日主题的动画程序开发参考。
【 Uni-App 从入门到实战教程:一个全面解析的指南】 Uni-App 是一个基于 Vue.js 的跨端开发框架,允许开发者编写一次代码,同时发布到 iOS、Android、Web(H5)、微信小程序、支付宝小程序等多个平台。本教程旨在...
1. **AppWidget组成**:AppWidget主要由两部分构成:`AppWidgetProvider`和`布局文件`。`AppWidgetProvider`是Android的广播接收器,负责监听并处理与AppWidget相关的事件,如添加、删除或更新操作。布局文件定义了...
使用前准备: 1. 安装 Python 2. 安装必要的库: pip install pygame ...这个项目适合作为 Pygame 入门学习的实例,也可以作为节日主题的动画程序开发参考。 (已经打包好的exe格式版本可以在我资源库中找)
本教程将深入讲解如何通过源码实现自定义单选对话框、多选对话框以及PopWindow窗口,以此来增强应用的交互性和美观性。 首先,我们来看自定义单选对话框。在Android的默认组件中,AlertDialog只提供了基本的单选...