[英]kivy: Is it possible to have the same Tabbed Panel on different screens?
我想知道即使我在屏幕之間切換,是否可以永久擁有一個選項卡式面板? 我已經嘗試在主屏幕之外,在不同的班級等上使用 TabbedPanel。 到目前為止,當我切換到 FirstScreen 時,TabbedPanel 消失了。
Python:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.tabbedpanel import TabbedPanel
class TabbedTest(TabbedPanel):
pass
class MainScreen(Screen):
pass
class Firstscreen(Screen):
pass
class Secondscreen(Screen):
pass
class myapp(App):
def build(self):
# Create the screen manager
sm = ScreenManager()
sm.add_widget(MainScreen(name='main'))
sm.add_widget(Firstscreen(name='first'))
sm.add_widget(Secondscreen(name='second'))
return sm
if __name__ == '__main__':
myapp().run()
千伏:
<TabbedTest>:
do_default_tab: False
TabbedPanelItem:
text:"test"
<MainScreen>:
BoxLayout:
Button:
text: 'first'
on_press: root.manager.current = 'first'
Button:
text: 'second'
on_press: root.manager.current = 'second'
<Firstscreen>:
BoxLayout:
Label:
text:"first"
Button:
text: 'Back to main'
on_press: root.manager.current = 'main'
<Secondscreen>:
BoxLayout:
Label:
text:'second'
Button:
text: 'Back to main'
on_press: root.manager.current = 'main'
而不是將TabbedTest
添加到每個Screen
,只需將TabbedTest
和ScreenManager
作為App
的根小部件的子級。 一種方法是修改build()
方法:
def build(self):
root = FloatLayout()
self.tabbedtest = TabbedTest(size_hint_y=0.5, pos_hint={'top': 1.0}) # later you can use self.tabbedtest to add more tabs
root.add_widget(self.tabbedtest)
# Create the screen manager
sm = ScreenManager(size_hint_y=0.5, pos_hint={'y': 0})
sm.add_widget(MainScreen(name='main'))
sm.add_widget(Firstscreen(name='first'))
sm.add_widget(Secondscreen(name='second'))
root.add_widget(sm)
return root
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.