实现此目的的一种简单方法是定义您自己的按钮子类:

class ScreenButton(Button):

screenmanager = ObjectProperty()

def on_press(self, *args):

super(ScreenButton, self).on_press(*args)

self.screenmanager.current = 'whatever'

按下按钮时会自动调用on_press方法,因此将更改screenmanager的当前属性.

然后你可以有类似的代码:

sm = ScreenManager()

sc1 = Screen(name='firstscreen')

sc1.add_widget(ScreenButton(screenmanager=sm))

sc2 = Screen(name='whatever')

sc2.add_widget(Label(text='another screen'))

sm.add_widget(sc1)

sm.add_widget(sc2)

单击该按钮应根据需要切换屏幕.

另一种方式(可能是kv语言实际上是如何做的)将是手动使用bind方法.

def switching_function(*args):

some_screen_manager.current = 'whatever'

some_button.bind(on_press=switching_function)

这意味着只要按下some_button就会调用switching_function.当然,关于如何以及何时定义函数,这里有很多灵活性,因此(例如)你可以做一些更通用的事情,比如将screenmanager作为函数的第一个参数传递.

我没有测试这个代码,它不是一个完整的应用程序,但希望意义很明确.无论哪种方法都可以正常工作,您可以选择最合理的方式.我稍后可能会构建一个更完整的例子.

python kivy事件_python – Kivy:使用on_press事件更改屏幕管理器中的屏幕相关推荐

  1. python with关键字_python中用with关键字来实现上下文管理器.

    例子 with open(r'somefileName') as somefile: for line in somefile: print line with 语句的语法 with [as ]: 什 ...

  2. python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器

    在上一章中介绍了如何通过实时行情推送的Tick数据合成1分钟K线,并且如何通过1分钟K线来合成更大周期的K线.本章主要介绍如何将K线通过numpy缓存到Array,形成时间序列,并且同时生成一些技术指 ...

  3. win mysql 错误日志_关于事件管理器中“应用程序”中显示windows error reporting的输入法报错日志...

    错误存储段 ,类型 0 事件名称: IMECustomerEvent 响应: 不可用 Cab Id: 0 问题签名: P1: IPX Assertion P2: 0CHS P3: ChsIME.exe ...

  4. 写入文件python并用序号_Python和excel表合成示例:向表中添加序列号,向表的现有内容添加索引,与,Excel,表格,综合,实例,给,增加,序号,对,已有...

    Python 与 Excel 表格综合实例(一):给表格增加序号,根据表格已有内容增加索引 前言: 前面我们花了6篇博客,把Python的xlwt与xlrd两个第三方模块对Excel表格的基础操作讲完 ...

  5. python系列教程_python基础学习系列教程2-进阶之路中绕不开的知识点。

    本文是在上一篇的基础上编写的,若要查看见:雨滴测试:python基础系列教程1-可能是你见过的最通俗易懂的教程​zhuanlan.zhihu.com 五. python函数 所谓的函数,就是具有特定功 ...

  6. python listbox大小_python 3.5 tkinter.listbox更改大小

    我对代码做了一些修改;这可能不是你想要的,但你应该觉得它有帮助. 列表框宽度和高度选项不是像素测量;它们用字符指定尺寸,所以height=12使得列表框12的文本行高,并且width=40使得列表框4 ...

  7. python中奖号_Python输入数字并从预定义的lis中选择中奖号码

    我昨天才开始学习Python,这是我第一次接触编程语言,我注意到我通过做一些事情比仅仅阅读来学习更好,所以我给自己分配了不同的任务,并不断地敲打自己的脑袋,直到我成功地完成它们. 关于我的问题,我相信 ...

  8. html设置了标签但是定义不了,在HTML标签管理器中设置不带元素ID的HTML中的事件...

    这取决于你想要采取的路线.但是,无论路线如何,您绝对需要标识表单和/或提交按钮的内容.它不需要是一个ID,但它是理想的,如果有一个唯一的包装类或ID. 您可以跟踪点击提交按钮,但是,您的号码不会完全准 ...

  9. win server 2003 事件查看器中的事件ID

    PS:最近管理服务器, 要查看事件处理器,特记下ID,以方便日后查看! 一.帐户登录事件  下面显示了由"审核帐户登录事件"安全模板设置所生成的安全事件.  672:已成功颁发和验 ...

最新文章

  1. Linux命令scp用于远程文件的拷贝(上传和下载)
  2. svn教程----TortoiseSVN常用操作
  3. js 调用后台代码(比较实用,好记)
  4. OC中的几种延迟执行方式
  5. Jmeter3.1官方自带的HTML图形测试报告 + 汉化
  6. SQLSERVER2005 收缩日志
  7. POJ NOI MATH-7656 李白的酒
  8. ubuntu gif 制作工具
  9. 信息差、技能差、资源差、认知差
  10. 模拟题 czy的后宫
  11. 区块链随想录——一种设想中的公链架构
  12. GPU驱动、CUDA和cuDNN之间的版本匹配与下载
  13. Eolink 征文活动- -专为开发者设计的一款国产免费 API 协作平台
  14. 程序人生:hello程序的P2P
  15. 自定义百度地图InfoWindow样式
  16. 阿里云课堂-day06
  17. java欧元货币输出符号位置_java – 使用unicode显示欧元符号并将字符更改为大写...
  18. 阿里代码规范检测工具-idea
  19. yarn 系统找不到指定的路径
  20. 如何设置卫星系统和频点

热门文章

  1. Ubuntu系统键盘背光灯不亮解决办法
  2. 移动端-K线图-开发
  3. 通过读取csv/xmladd()reduct()数据并使用allure展示测试报告
  4. ceph 数据恢复机制_ceph数据恢复(成功率相当高)
  5. #一日一图#一周汇总
  6. java基本微信小程序的快递代收派送系统 uniapp小程序
  7. python中column什么意思_DataFrame属性和column有什么区别
  8. HTML+CSS美食静态网页设计——简单牛排美食餐饮(9个页面)公司网站模板企业网站实现...
  9. zblog忘记后台密码怎么办 官方解决方案
  10. 【游记】NOI2021