Kivy 嵌套选项卡面板

Kivy nested 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


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

为什么此代码不起作用?

您需要嵌套另一个选项卡面板。
像这样:

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