kivy - 带有屏幕管理器的 kivy 菜单栏和单独屏幕上的新菜单
问题描述
这个答案显示了如何制作一个在屏幕之间切换的菜单。 带有菜单栏的 Kivy
但是现在我在第二个屏幕上,我需要在那个屏幕上放两个按钮
一个确定和一个取消按钮。
OK 将您带到一个屏幕,显示信息已处理,
Cancel 将我带回到每个示例的屏幕之一。
我曾尝试安装第二个屏幕管理器,但它不喜欢那样。这是如何处理的?
<Display>:
BoxLayout:
orientation: "vertical"
BoxLayout:
size_hint: 1, None
height: '48dp'
Button:
text: 'One'
on_release:
sm.current = 'screen_one' #<<<<<<<<<<<<<<<<
sm.transition.direction = "left"
Button:
text: 'Two'
on_release:
sm.current = 'screen_two' #<<<<<<<<<<<<<<<<
sm.transition.direction = "right"
Button:
text: 'Three'
on_release:
sm.current = 'screen_three' #<<<<<<<<<<<<<<<<
sm.transition.direction = "right"
ScreenManager:
id: sm
Screen_One:
Screen_Two:
Screen_Three:
<Screen_One>:
name: 'screen_one' #<<<<<<<<<<<<<<<<
Button:
text: 'One'
<Screen_Two>:
name: 'screen_two' #<<<<<<<<<<<<<<<<
BoxLayout:
size_hint: 1, None
height: '48dp'
Button:
text: 'Cancel'
on_release:
sm1.current = 'screen_one' #<<<<<<<<<<<<<<<<
sm1.transition.direction = "left"
Button:
text: 'Ok'
on_release:
sm1.current = 'screen_three' #<<<<<<<<<<<<<<<<
sm1.transition.direction = "right"
ScreenManager:
id: sm1
Screen_One:
Screen_Two:
Screen_Three:
<Screen_Three>:
name: 'screen_three' #<<<<<<<<<<<<<<<<
Button:
text: 'Three'
解决方案
Each instance of Screen
has a manager
property, which is a reference to the ScreenManager
that is managing it. So, in your kv
, you can replace sm1
with root.manager
like this:
root.manager.current = 'screen_three' #<<<<<<<<<<<<<<<<
推荐阅读
- python - CNN模型验证准确率没有提高
- python-3.x - 带有角度 api 调用的 Flask POST API
- javascript - 在 iframe 上按空格会向下滚动父页面,如何在不破坏 keyup 事件的情况下防止这种情况
- angular - Angular 材质中的动态 cdkDragBoundary
- r - 设置元素名称 Rcpp 错误堆栈使用
- c# - 右键单击相同 TortoiseSVN 的特定文件夹时如何创建新的上下文菜单?
- sql - 在分析函数中过滤行 - Oracle
- maven - 从 servlet 暴露的本地 m2 工件
- javascript - 将组件作为道具传递的更好方法是什么?
- javascript - 从谷歌地图边界获取纬度/经度值