Button:  on_press 按下按钮时候触发该事件

on_release 按下按钮并释放触发该事件

以下是一个简单的使用Button的Kivy应用程序示例,可以在按下和释放按钮时打印消息:

import kivy
from kivy.app import App
from kivy.uix.button import Buttonclass MyButton(Button):def on_press(self):print("按钮被按下")def on_release(self):print("按钮被释放")class MyApp(App):def build(self):return MyButton(text='按我')if __name__ == '__main__':MyApp().run()

在这个例子中,MyButton是一个自定义的Button类,它重写了on_press()和on_release()方法。当按钮被按下时,on_press()方法将打印消息“按钮被按下”,当按钮被释放时,on_release()方法将打印消息“按钮被释放”。MyApp是一个简单的Kivy应用程序,它创建了一个MyButton实例并将其返回,这将在屏幕上显示一个按钮,该按钮的文本为“按我”。当用户按下按钮和释放按钮时,将打印相应的消息。

Label 标签 on_ref_press 点击ref标记的文本触发

markup 需要先设置为真

以下是一个简单的使用Label的Kivy应用程序示例,可以在点击ref标记的文本时打印消息:

import kivy
from kivy.app import App
from kivy.uix.label import Labelclass MyLabel(Label):def on_ref_press(self, instance, value):print("ref标记的文本被点击:", value)class MyApp(App):def build(self):label = MyLabel(text='这是一个 <ref>链接</ref>。', markup=True)return labelif __name__ == '__main__':MyApp().run()

在这个例子中,MyLabel是一个自定义的Label类,它重写了on_ref_press()方法。当ref标记的文本被点击时,on_ref_press()方法将打印消息“ref标记的文本被点击:value”,其中value是ref标记中的文本。MyApp是一个简单的Kivy应用程序,它创建了一个MyLabel实例,并将其返回,这将在屏幕上显示一个标签,该标签包含一个ref标记的链接文本。在这个例子中,我们需要将markup设置为True,以便正确地解释标记

TextInput 输入框 on_text_validate 选中 按回车键的时候触发该事件

on_text  文本改变的时候触发该事件

on_double_tap 双击触发该事件

on_trible_tap 三击触发该事件

on_quad_touch 四指触摸时候触发该事件

以下是一个使用TextInput的Kivy应用程序示例,演示了多个事件的使用:

import kivy
from kivy.app import App
from kivy.uix.textinput import TextInputclass MyTextInput(TextInput):def on_text_validate(self):print("按下回车键,选中的文本是:", self.selection_text)def on_text(self, instance, value):print("文本改变,新的文本是:", value)def on_double_tap(self):print("双击TextInput")def on_triple_tap(self):print("三击TextInput")def on_quad_touch(self):print("四指触摸TextInput")class MyApp(App):def build(self):return MyTextInput()if __name__ == '__main__':MyApp().run()

在这个例子中,MyTextInput是一个自定义的TextInput类,它重写了多个事件的方法。具体来说,当用户在TextInput中按下回车键时,on_text_validate()方法将打印消息“按下回车键,选中的文本是:value”,其中value是选中的文本。当文本发生变化时,on_text()方法将打印出新的文本。当用户双击TextInput时,on_double_tap()方法将打印出“双击TextInput”的消息。当用户三击TextInput时,on_triple_tap()方法将打印出“三击TextInput”的消息。当用户使用四指触摸TextInput时,on_quad_touch()方法将打印出“四指触摸TextInput”的消息。

MyApp是一个简单的Kivy应用程序,它创建了一个MyTextInput实例,并将其返回,这将在屏幕上显示一个可编辑的文本输入框。当用户在TextInput中进行上述操作时,将打印相应的消息。

CheckBox 复选框 on_checkbox_active 选中复选框触发 需要在.py 文件内绑定具体方法

以下是一个简单的使用CheckBox的Kivy应用程序示例,可以在选中复选框时打印消息:

import kivy
from kivy.app import App
from kivy.uix.checkbox import CheckBoxclass MyCheckBox(CheckBox):def on_checkbox_active(self, instance, value):if value:print("复选框被选中")else:print("复选框被取消选中")class MyApp(App):def build(self):return MyCheckBox()if __name__ == '__main__':MyApp().run()

在这个例子中,MyCheckBox是一个自定义的CheckBox类,它重写了on_checkbox_active()方法。当复选框被选中时,on_checkbox_active()方法将打印消息“复选框被选中”,当复选框被取消选中时,on_checkbox_active()方法将打印消息“复选框被取消选中”。MyApp是一个简单的Kivy应用程序,它创建了一个MyCheckBox实例,并将其返回,这将在屏幕上显示一个复选框。当用户选中或取消选中复选框时,将打印相应的消息。

Slider 滑块 on_touch_down  在点击部件时触发

on_touch_up   在释放部件时触发

on_touch_move 移动时触发

以下是一个简单的使用Slider的Kivy应用程序示例,可以在滑动Slider时打印消息:

import kivy
from kivy.app import App
from kivy.uix.slider import Sliderclass MySlider(Slider):def on_touch_down(self, touch):if self.collide_point(*touch.pos):print("滑块被点击")return super().on_touch_down(touch)def on_touch_up(self, touch):if self.collide_point(*touch.pos):print("滑块被释放")return super().on_touch_up(touch)def on_touch_move(self, touch):if self.collide_point(*touch.pos):print("滑块移动中")return super().on_touch_move(touch)class MyApp(App):def build(self):return MySlider()if __name__ == '__main__':MyApp().run()

在这个例子中,MySlider是一个自定义的Slider类,它重写了on_touch_down()、on_touch_up()和on_touch_move()方法。当用户点击并按下Slider时,on_touch_down()方法将打印消息“滑块被点击”。当用户释放Slider时,on_touch_up()方法将打印消息“滑块被释放”。当用户移动Slider时,on_touch_move()方法将打印消息“滑块移动中”。同样,我们可以使用Slider其他的方法,例如on_value_changed(),来捕获Slider值更改的事件。

MyApp是一个简单的Kivy应用程序,它创建了一个MySlider实例,并将其返回,这将在屏幕上显示一个滑块。当用户在Slider上进行上述操作时,将打印相应的消息。

ProgressBar 进度条 max 允许最大值默认100

value 滑块使用的当前值 应为0到max之间

value_normalized  0-1 范围内的标准化值

以下是一个使用ProgressBar的Kivy应用程序示例,可以设置最大值和当前值,并使用value_normalized参数获取标准化值:

import kivy
from kivy.app import App
from kivy.uix.progressbar import ProgressBarclass MyApp(App):def build(self):max_value = 200current_value = 50progress_bar = ProgressBar(max=max_value, value=current_value)normalized_value = progress_bar.value_normalizedprint("当前值的标准化值为:", normalized_value)return progress_barif __name__ == '__main__':MyApp().run()

在这个例子中,MyApp是一个简单的Kivy应用程序,它创建了一个ProgressBar实例,并将其返回,这将在屏幕上显示一个进度条。我们使用max参数来设置最大值为200,value参数来设置当前值为50。然后,我们使用value_normalized参数获取标准化值,并将其打印出来以供参考。在这个例子中,标准化值为0.25,因为当前值是50,而最大值是200,因此50 / 200 = 0.25。

我们可以通过代码动态地更改进度条的值和最大值:

progress_bar = ProgressBar(max=200, value=100)
progress_bar.max = 300
progress_bar.value = 150

这将将进度条的最大值更改为300,并将当前值更改为150。我们还可以使用value_normalized参数来获取标准化值。

ToggleButton 切换按钮 触摸或者点击时 会在normal 和down 两种状态之间切换

以下是一个简单的使用ToggleButton的Kivy应用程序示例,可以在切换ToggleButton时打印消息:

import kivy
from kivy.app import App
from kivy.uix.togglebutton import ToggleButtonclass MyToggleButton(ToggleButton):def on_state(self, widget, value):if value == "down":print("ToggleButton被按下")else:print("ToggleButton被释放")class MyApp(App):def build(self):return MyToggleButton(text='切换按钮')if __name__ == '__main__':MyApp().run()

在这个例子中,MyToggleButton是一个自定义的ToggleButton类,它重写了on_state()方法。当ToggleButton被按下时,on_state()方法将打印消息“ToggleButton被按下”,当ToggleButton被释放时,on_state()方法将打印消息“ToggleButton被释放”。MyApp是一个简单的Kivy应用程序,它创建了一个MyToggleButton实例,并将其返回,这将在屏幕上显示一个切换按钮。当用户切换ToggleButton时,将打印相应的消息。

Switch 开关 on_active  激活时触发事件

在Kivy中,您可以使用Switch小部件来创建一个开关按钮,并且可以使用on_active事件来触发激活时的操作。以下是一个简单的示例代码:

from kivy.app import App
from kivy.uix.switch import Switchclass MySwitch(Switch):def on_active(self, switch, active):if active:print("Switch is on")else:print("Switch is off")class SwitchApp(App):def build(self):return MySwitch()if __name__ == '__main__':SwitchApp().run()

在上面的代码中,我们创建了一个名为MySwitch的自定义Switch小部件,并将其继承了Switch类。我们覆盖了on_active方法,并在其中添加了一些简单的逻辑来打印开关状态。

最后,我们创建了一个名为SwitchApp的应用程序,并将其构建为MySwitch小部件的实例。当我们运行应用程序时,将显示一个带有初始状态关闭的开关。当我们切换开关时,将触发on_active事件并打印开关的状态。

Video 加载视频文件流

在Kivy中,我们可以使用Video小部件来加载视频文件流。以下是一个简单的示例代码,该代码演示了如何加载本地视频文件和网络视频流:

from kivy.app import App
from kivy.uix.video import Videoclass MyVideo(Video):def __init__(self, **kwargs):super(MyVideo, self).__init__(**kwargs)self.source = 'path/to/local/video.mp4' # 加载本地视频文件# self.source = 'http://example.com/path/to/remote/video.mp4' # 加载网络视频流self.state = 'play'self.options = {'eos': 'loop'}class VideoApp(App):def build(self):return MyVideo()if __name__ == '__main__':VideoApp().run()

在上面的代码中,我们创建了一个名为MyVideo的自定义Video小部件,并将其继承了Video类。我们在构造函数中设置了视频的来源,可以是本地视频文件路径或网络视频流的URL。我们还设置了视频的状态和选项,以便在加载后自动播放并循环播放。

最后,我们创建了一个名为VideoApp的应用程序,并将其构建为MyVideo小部件的实例。当我们运行应用程序时,将显示视频播放器,并自动开始播放加载的视频文件或流。

kivy UX 组件相关推荐

  1. 快应用信息流列表组件

    recommend组件 <import name="com-large" src="./list/large.ux"></import> ...

  2. Svelte的UI组件库

    Svelte Material UI 地址:https://sveltematerialui.com/ Material: 谷歌出品的扁平化风格. Carbon Components Svelte 地 ...

  3. 我在神策做研发 | 成长中的成都研发中心

    在这里,他们既见证了团队从初创到迅猛增长,又作为神策的西南军团一路披荆斩棘.这里充实并快乐,热情且刺激,快来和他们一起,品尝神策不一样的成都味道. 好吃的这么多,吃哪家? 王小虾 | 后端研发工程师 ...

  4. Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?

    来自:开源中国 协作翻译 链接:oschina.net/translate/web-frameworks-conclusions 原文:sitepen.com/blog/2017/11/10/web- ...

  5. msbuild构建步骤_如何按照以下步骤构建最终的AI聊天机器人

    msbuild构建步骤 by Paul Pinard 保罗·皮纳德(Paul Pinard) 如何按照以下步骤构建最终的AI聊天机器人 (How to build the ultimate AI ch ...

  6. MixedRealityToolkit-Unity:MR应用必用神器

    洪流学堂,让你快人几步.你好,我是你的技术探路者郑洪智,你可以叫我大智. 本篇文章首发于我的公众号:洪流学堂 MRTK-Unity是一个由Microsoft驱动的开源项目,提供了多种组件和功能,用于加 ...

  7. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

    孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自学 ...

  8. React Native Apps的最佳主题

    您是否对默认格式和无聊的应用程序感到厌倦? React Native主题可以帮助使您的应用美观. 应用主题或React Native模板可以帮助您单击按钮来创建杰作. 如果您想节省数百小时的开发工作, ...

  9. Web前端技术 Web学习资料 Web学习路线 Web入门宝典

    学习路线 第一章 核心 1.Node Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个 ...

最新文章

  1. Android基础是什么,Android基础概念
  2. xcode代码没颜色的解决方案
  3. Spring 自动装配 ‘byType’
  4. python达梦数据库_python 操作达 梦数据库
  5. Hadoop简介 (资源)
  6. SpringMVC 控制器默认支持GET和POST两种方式
  7. redis在Windows下以后台服务一键搭建集群(多机器)
  8. 处理App状态改变的策略
  9. 斐讯k2虚拟服务器设置,斐讯K2调配设置
  10. ios 权限提示语_uni-app开发经验分享十一: uniapp iOS云打包修改权限提示语
  11. 好男07演唱会将开唱 劲歌热舞点燃盛夏激情
  12. ubuntu系统强制解锁
  13. 计算机毕设项目 python微信公众平台机器人
  14. The following signatures couldn‘t be verified because the public key is not available问题解决
  15. 说一下自动化测试的优缺点
  16. python字符串左边补0_python 实现数字字符串左侧补零的方法
  17. 钉钉开放平台API对接第一讲
  18. 大地坐标系与空间直角坐标系的相互转换
  19. 视频教程-VUE前端开发/前后端分离-Java
  20. python 图片中物体识别_使用TensorFlow识别照片中的物体

热门文章

  1. C++11标准模板(STL)- 算法 - 集合操作(在已排序范围上)(std::set_difference)
  2. 友情链接在html中怎么写,用描文本、友情链接交易方式教你如何制作网页链接...
  3. 韩国人彻底疯狂了,竟想向中俄索要大片领土
  4. byvoid面试阿里星 面试官的评价--我辈楷模
  5. MacBook 启动/禁用翻盖自动开关机
  6. 云中“图书馆”:陈天桥的“平台”诱惑
  7. SmokeTest测试流程
  8. 再提供两套清纯美女扑克
  9. 01-Java语法基础(四)-案例
  10. 百度网盘突然大调整,网友:我 2T 的老师没地方放了...