2017-04-23 106 views
0

我正在學習Kivy和Kivy語言的過程。現在我試圖用兩個嵌套tabbedpanel構建一個小接口。Kivy嵌套tabbedpannel

在一級三選項卡和一級的第一個選項卡內,我嘗試把一組新的三選項卡。

爲此我的Python代碼:

# question_one 
from kivy.uix.tabbedpanel import TabbedPanel 
from kivy.app import App 


class Q(TabbedPanel): 
    pass 


class QuestionOneApp(App): 
    def build(self): 
     return Q() 


if __name__ == '__main__': 
    QuestionOneApp().run() 

和我Kivy語言代碼:

# file name questionone.kv 
#:import hex kivy.utils.get_color_from_hex 


<[email protected]>: 

<[email protected]>: 
    multiline: False 

<[email protected]>: 
    rows: 1 
    cols: 1 
    spacing: 5 


<Q>: 
    do_default_tab: False 
    tab_width: 200 
    TabbedPanelItem: 
     text: "First Level Tab A1" 
     do_default_tab: False 
     tab_width: 200 

     TabbedPanelItem: 
      text: "Second level Tab B1" 
      MyGridLayout 
       RegularInterfaceLabel: 
        text: "Second level Tab B1 is working" 

     TabbedPanelItem: 
      text: "Second level Tab B2" 
      MyGridLayout 
       RegularInterfaceLabel: 
        text: "Second level Tab B2 is working" 

     TabbedPanelItem: 
      text: "Second level Tab B3" 
      MyGridLayout 
       RegularInterfaceLabel: 
        text: "Second level Tab B3 is working but not as i want" 

    TabbedPanelItem: 
     text: "First Level Tab A2" 
     MyGridLayout 
      RegularInterfaceLabel: 
       text: "First Level Tab A2 is working" 

    TabbedPanelItem: 
     text: "First Level Tab A3" 
     MyGridLayout 
      RegularInterfaceLabel: 
       text: "First Level Tab A3 is working" 

爲什麼這個代碼不工作?

回答

1

您需要嵌套另一個tabbedpanel。
像這樣:

<Q>: 
    do_default_tab: False 
    tab_width: 200 
    TabbedPanelItem: 
     text: "First Level Tab A1" 
     do_default_tab: False 
     tab_width: 200 

     TabbedPanel:  
      TabbedPanelItem: 
       text: "Second level Tab B1" 
       MyGridLayout 
        RegularInterfaceLabel: 
         text: "Second level Tab B1 is working"