Python kivy中的2页应用程序最好使用什么小部件?
我正在尝试创建一个有2个页面的应用程序。我想用一个按钮在两个页面之间切换:当按下一个按钮时,页面切换。我的代码似乎不起作用。我可能错过了什么。 我怎样才能做到这一点 这是我正在使用的代码:Python kivy中的2页应用程序最好使用什么小部件?,python,kivy,Python,Kivy,我正在尝试创建一个有2个页面的应用程序。我想用一个按钮在两个页面之间切换:当按下一个按钮时,页面切换。我的代码似乎不起作用。我可能错过了什么。 我怎样才能做到这一点 这是我正在使用的代码: <TrafGridLayout>: PageLayout: BoxLayout: orientation: 'vertical' BoxLayout: TextInput:
<TrafGridLayout>:
PageLayout:
BoxLayout:
orientation: 'vertical'
BoxLayout:
TextInput:
text: ''
BoxLayout:
TextInput:
text: ''
# Calculate and show page #2
BoxLayout:
Button:
text: "Calculate"
on_press:
traffictax.calculate(point_from.text, point_to.text)
traffictax.show_page(1)
BoxLayout:
orientation: 'vertical'
# Show page #1
BoxLayout:
Button:
text: "Back to first page"
on_press: traffictax.show_page(0)
:
页面布局:
盒子布局:
方向:“垂直”
盒子布局:
文本输入:
文本:“”
盒子布局:
文本输入:
文本:“”
#计算并显示第2页
盒子布局:
按钮:
正文:“计算”
新闻界:
traffictax.calculate(point_from.text,point_to.text)
交通税显示页面(1)
盒子布局:
方向:“垂直”
#显示第1页
盒子布局:
按钮:
文本:“返回到第一页”
按:traffictax.显示页面(0)
问题1
我的代码似乎不起作用。我可能错过了什么
问题
使用提供的代码运行应用程序时,会在左下角显示一个小窗口
根本原因
:
缺少cols
或行
属性PageLayout
中,通过从右侧或左侧的边界区域滑入,可以从一个页面切换到下一个页面。因此,在按下按钮时使用按钮小部件的事件并不是最佳做法
cols:1
添加到类规则中,:
片段
试验电压(千伏)
#:kivy 1.10.0
:
首页:
id:第1页
第二页:
:
名称:“第一页”
盒子布局:
方向:“垂直”
盒子布局:
标签:
文本:“指向:
文本输入:
id:点_从
文本:“”
盒子布局:
标签:
文本:“指向:”
文本输入:
id:指向
文本:“”
#计算并显示第2页
盒子布局:
按钮:
正文:“计算”
新闻界:
root.calculate(点从.text,点到.text)
root.manager.current=“第二页”
:
名称:“第二页”
盒子布局:
方向:“垂直”
#显示第1页
盒子布局:
按钮:
文本:“返回到第一页”
按:root.manager.current=“第一页”
输出
<TrafGridLayout>:
cols: 1
PageLayout:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
class ScreenManagement(ScreenManager):
pass
class FirstPage(Screen):
def calculate(self, point_from, point_to):
print("point_from={0}, point_to={1}".format(point_from, point_to))
class SecondPage(Screen):
pass
class TestApp(App):
title = "Login Screen"
def build(self):
return ScreenManagement()
if __name__ == "__main__":
TestApp().run()
#:kivy 1.10.0
<ScreenManagement>:
FirstPage:
id: page1
SecondPage:
<FirstPage>:
name: "first_page"
BoxLayout:
orientation: 'vertical'
BoxLayout:
Label:
text: "Point From:"
TextInput:
id: point_from
text: ''
BoxLayout:
Label:
text: "Point To:"
TextInput:
id: point_to
text: ''
# Calculate and show page #2
BoxLayout:
Button:
text: "Calculate"
on_press:
root.calculate(point_from.text, point_to.text)
root.manager.current = "second_page"
<SecondPage>:
name: "second_page"
BoxLayout:
orientation: 'vertical'
# Show page #1
BoxLayout:
Button:
text: "Back to first page"
on_press: root.manager.current = "first_page"