`

Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)

阅读更多


1. 框架代码

用 PyCharm 新建一个名为 SimplePaintApp 的项目,然后新建一个名为 simple_paint_app.py 的 PYTHON 源文件,

在代码编辑器中,输入以下框架代码

 

   1 from kivy.app import App

2 from kivy.uix.widget import Widget





5 class MyPaintWidget(Widget):

6     pass





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





5 class MyPaintWidget(Widget):

6     def on_touch_down(self, touch):

7         print(touch)





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界面控件使用教程.zip

    【Android 安卓 App Widget 界面控件使用教程】 Android 安卓系统提供了一种称为 App Widget 的功能,这是一类特殊的用户界面组件,可以让应用程序的部分功能直接出现在用户的主屏幕上,无需打开应用就能进行交互。...

    Android -- AppWidget源码.zip

    在Android系统中,AppWidget是桌面小部件的实现,它允许开发者将应用程序的功能和信息集成到用户的主屏幕上,用户无需打开应用即可与之交互。这个压缩包“Android -- AppWidget源码.zip”很可能是包含了Android App...

    Android高级应用源码-Android小部件AppWidget.zip

    1. **AppWidget提供者(AppWidget Provider)**:这是Android系统与你的AppWidget交互的组件,定义了AppWidget的行为,如接收广播更新、添加、删除或更新AppWidget等。 2. **布局文件(Layout)**:定义了AppWidget...

    画布:时钟.rar

    在Android开发中,"画布:时钟.rar"可能是一个包含源码的压缩包,用于展示如何在Android平台上实现自定义的时钟视图。这个压缩包中的源码可能包括一个自定义View类,该类继承自Android的View或者SurfaceView,并通过...

    android之appwidget(一)简单appwidget

    一个AppWidget由两部分组成:AppWidget提供者(AppWidgetProvider)和布局文件。AppWidget提供者是Android的BroadcastReceiver子类,它负责处理AppWidget的生命周期事件,如添加、删除或更新。布局文件则定义了App...

    HTML5响应式手机应用教程网站源码 APP应用软件下载pbootcms网站模板886

    (自适应手机端)HTML5响应式手机应用教程网站源码 APP应用软件下载pbootcms网站模板 ...4:附带测试数据、安装教程、入门教程、安全及备份教程。 5:后台直接修改联系方式、传真、邮箱、地址等,修改更加方便

    Android AppWidget实例验证

    本教程将深入探讨如何通过实例来验证一个Android AppWidget的创建和使用。 首先,我们来看`AndroidManifest.xml`文件,它是Android应用的核心配置文件,包含应用的基本信息以及所有组件(如Activity、Service、...

    AppWidget

    AppWidget是Android系统提供的一种组件,它允许开发者在用户的主屏幕上创建自定义的小部件,无需用户启动应用程序。这种功能极大地增强了用户体验,使用户能够快速访问或控制应用的功能,而无需打开应用本身。本文将...

    android.support.design.widget.TabLayout示例

    在Android开发中,`android.support.design.widget.TabLayout`是一个非常重要的组件,它是Google引入的用于实现Material Design设计规范的一部分。这个组件主要用于展示可滑动的标签页,为用户提供清晰的导航选项,...

    组态王实例教程入门.zip_currentqca_seenui1_组态王_组态王 实例_组态王入门

    《组态王实例教程入门》是一份专门为初学者设计的指南,旨在帮助用户快速掌握组态王软件的基本操作和应用。组态王是一款强大的工业自动化监控系统开发平台,广泛应用于工业生产过程控制、楼宇自动化、环保监测等领域...

    android Launcher添加widget源码

    1. **扩展AppWidgetHost**:自定义的Launcher通常会扩展AppWidgetHost,这是一个管理Widget实例的类,负责创建和销毁Widget实例。 2. **处理Widget添加事件**:在JYCLauncher中,需要监听用户添加Widget的请求,...

    Android小部件AppWidget-IT计算机-毕业设计.zip

    3. **更新机制**:AppWidget通过`AppWidgetProviderInfo`中的`updatePeriodMillis`属性定期更新,也可以通过广播接收器即时更新。 **二、AppWidget开发步骤** 1. **创建AppWidgetProvider**:继承`...

    AppWidget学习demo

    AppWidget是Android系统提供的一种可以在桌面展示的小部件,它允许用户在主屏幕上放置应用程序的快捷方式或者小型交互式UI,无需打开应用即可进行一些简单的操作。这个"AppWidget学习demo"是一个实例,帮助开发者...

    几何画板课件介绍教程ppt

    1. 画点:单击【点工具】,然后将鼠标移动到画板窗口中单击一下,就会出现一个点。 2. 画线:单击【直尺工具】,然后拖动鼠标,将光标移动到画板窗口中单击一下,再拖动鼠标到另一位置松开鼠标,就会出现一条线段。 ...

    qml弹出自定义窗口

    创建自定义窗口意味着你需要定义一个新的`Window`实例,设置其属性如标题、大小、位置等,并在其中放置你需要显示的内容。 ```qml import QtQuick 2.0 Window { id: customWindow width: 300 height: 200 ...

    Android应用源码之Android小部件AppWidget-IT计算机-毕业设计.zip

    1. **Android小部件(AppWidget)基础** - **定义**:AppWidget是Android系统中的一种轻量级UI组件,可以直接在用户的主屏幕上显示信息并提供快捷操作。 - **组成**:一个AppWidget通常包括布局文件(XML)、提供...

    ImagesWidget.rar

    android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> android:name=".ImagesWidgetProvider"> android:name="android.appwidget.action.APPWIDGET_UPDATE" /> android:name="android...

    android之appwidget(四)终 appwidget控件更新

    在Android平台上,AppWidget是能够将小部件添加到用户主屏幕上的迷你应用程序,它们提供了一种无需打开完整应用即可展示信息或执行简单操作的方式。本文将深入探讨Android AppWidget的第四部分,主要关注如何更新App...

    python动态圣诞树(自定义祝贺语)

    使用说明: 1. 运行程序后会提示输入要祝福的人的名字 2. 输入名字后会自动隐藏命令行窗口 3. 动画窗口中会显示带有个性化祝福的...这个项目适合作为 Pygame 入门学习的实例,也可以作为节日主题的动画程序开发参考。

Global site tag (gtag.js) - Google Analytics