所以我正在创建一个应用程序,我需要这个东西:
小工具1: - GridLayout包含来自JSON文件的数据,每个数据行都转到一个按钮,所以基本上当你点击按钮时会出现一个弹出框。 - 弹出:这个包含一个数字键盘来输入密码,然后你点击一个按钮进入主要的小部件
主要小部件: - 这个从JSON文件中读取数据,然后将其放在网格布局上,就像在小部件1上一样
我可以在python中完成小部件,而不是用kv语言,我只是不能做一件事:从小部件1改为主小部件......请帮助我,我坚持这件事很长一段时间......
答案 0 :(得分:2)
要在屏幕之间切换,您只需使用current
属性即可。基本上你必须告诉ScreenManager哪个是当前屏幕,但首先你必须在它们上面写一个名字。这里有一个例子:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
Builder.load_string("""
<Phone>:
AnchorLayout:
anchor_x: 'center'
anchor_y: 'top'
ScreenManager:
size_hint: 1, .9
id: _screen_manager
Screen:
name: 'screen1'
Label:
text: 'The first screen'
Screen:
name: 'screen2'
Label:
text: 'The second screen'
AnchorLayout:
anchor_x: 'center'
anchor_y: 'bottom'
BoxLayout:
orientation: 'horizontal'
size_hint: 1, .1
Button:
text: 'Go to Screen 1'
on_press: _screen_manager.current = 'screen1'
Button:
text: 'Go to Screen 2'
on_press: _screen_manager.current = 'screen2'""")
class Phone(FloatLayout):
pass
class TestApp(App):
def build(self):
return Phone()
if __name__ == '__main__':
TestApp().run()
该行
on_press: _screen_manager.current = 'screen1'
将告诉屏幕管理员使用另一行
更改名为“screen1”的屏幕name: 'screen1'