Baltazarg
Baltazarg

Reputation: 27

Kivy nested tabbedpannel

I am in the process of learning Kivy and Kivy language. For now i am trying to build a small interface with two nested tabbedpanel.

On the level one three tab and inside the first tab of level one i try to put a new set of three tab.

For that purpose my Python code is:

# 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()

and my Kivy language code is :

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


<RegularInterfaceLabel@Label>:

<RegularInterfaceTextInput@TextInput>:
    multiline: False

<MyGridLayout@GridLayout>:
    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"

Why this code doesn't work ?

Upvotes: 0

Views: 219

Answers (1)

el3ien
el3ien

Reputation: 5405

You need to nest another tabbedpanel.
Like this:

<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"

Upvotes: 1

Related Questions