上篇博文中的转换界面方法,当切换到新界面后,无法返回原界面,本文通过改进,实现了界面任意切换。
代码如下:
: #界面1代码
orientation:"vertical"
text_input:text_box
BoxLayout:
height:"40dp"
size_hint_y:None
TextInput:
id:text_box
size_hint_x:50
Button:
text:"Button A"
size_hint_x:20
on_press:root.buttona_act()
Button:
text:"Button B"
size_hint_x:20
on_press:root.chg_widget()
Button:
text:"Button C"
size_hint_x:10
on_press:root.chg_widget2()
:#界面2代码
Button:
text:"Button D"
on_press:root.chg_widget3()
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.factory import Factory
class MyForm(BoxLayout):
text_input = ObjectProperty()
def buttona_act(self):
print(self.text_input.text)
def chg_widget(self):
self.clear_widgets()
self.add_widget(Label(text='location'))
def chg_widget2(self): #进入子界面调用的方法
self.clear_widgets()
cur_wdgt = Factory.MyForm2()
self.add_widget(cur_wdgt)
class MyForm2(BoxLayout):
def chg_widget3(self): #返回主界面调用的方法
self.clear_widgets()
cur_wdgt = Factory.MyForm()
self.add_widget(cur_wdgt)
class MychgApp(App):
def build(self):
return MyForm() #显示主界面
MychgApp().run()
运行结果截图这里就不放了。