簡體   English   中英

kivy:是否可以在不同的屏幕上使用相同的選項卡式面板?

[英]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 ,只需將TabbedTestScreenManager作為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM