`

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 -- AppWidget源码.zip

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

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

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

    鸿蒙App自定义样式实例

    鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App自定义样式实例鸿蒙App...

    几何画板教程、数学题目实例.zip

    几何画板是一款强大的数学教学工具,它以图形化的方式帮助学生和教师理解各种几何概念,进行动态演示,解决数学问题。本教程集合了初中数学和高中数学的经典例题,旨在通过实际操作提升学习者的几何直观能力和解决...

    画布:时钟.rar

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

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

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

    Android AppWidget实例验证

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

    AppWidget

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

    Android 自定义preference组件

    上篇博文代码实现了Android自带的preference组件,本文将通过实例讲解自定义preference组件。 主要通过以下几步来实现: 1.定义需要的layout布局res->layout->xml文件; 2.通过继承Preference类,来实现自定义...

    CustomWidgetSample:这是自定义小部件示例

    在Android开发中,自定义小部件(Custom Widget)是开发者常用的一种技术,它允许我们创建具有独特功能和外观的UI组件,以满足特定的应用需求。本示例项目"CustomWidgetSample"显然是一个专注于演示如何创建自定义小...

    Android -自定义view-Paint和Canvas.rar

    本资源“Android -自定义view-Paint和Canvas.rar”着重讲解了如何利用Paint和Canvas进行自定义View的绘制。下面将详细介绍这两个关键概念及其在自定义View中的应用。 1. **Paint(画笔)**: Paint是Android图形库...

    Android应用源码之自定义弹出窗口的实现

    本项目可能包含了一个完整的实例,展示了如何在Android中实现自定义弹出窗口。以下是一些关于自定义弹出窗口实现的关键知识点: 1. **自定义布局**: 在`res/layout`目录下,开发者通常会创建一个新的XML布局文件来...

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

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

    几何画板课件介绍教程ppt

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

    自定义窗口模板_模板_窗口_WPF_zerohmk_自定义_

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)框架中实现自定义窗口模板。自定义窗口模板是创建独特、个性化用户界面的关键技术,它允许开发者跳出默认的窗口样式,为应用程序提供独一无二...

    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)、提供...

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

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

    安卓Android源码——小部件AppWidget.zip

    1. **AppWidget组成**:AppWidget主要由两部分构成:`AppWidgetProvider`和`布局文件`。`AppWidgetProvider`是Android的广播接收器,负责监听并处理与AppWidget相关的事件,如添加、删除或更新操作。布局文件定义了...

Global site tag (gtag.js) - Google Analytics