如何调整KivyMD标签内容的大小?

时间:2019-10-20 17:28:23

标签: python kivy kivy-language

我试图使用KivyMD构建三个选项卡,但是当我向每个MDTabsBase添加内容时,内容始终占用相同的空间。我尝试了很多更改它的大小,以使内容占据整个包装盒的功能,但是却无法正常工作。

这里是内容的样子:

enter image description here

和代码:

Screen:
    name: 'itemscad_food'
    BoxLayout:
        id: boxcad
        orientation: 'vertical'
        MDToolbar:
            id: toolcad
            title: "Item Register"
            md_bg_color: app.theme_cls.primary_color
            anchor_title: 'justify'
            left_action_items: [['menu-left', lambda x: app.back_button()]]
        BoxLayout:
            id: tabox
            orientation: 'vertical'
            MDTabs:
                id: itemstab
                tab_display_mode: 'text'            

                MDTabsBase:
                    id: ingr_tab
                    name: 'ingredients'
                    text: "Ingredientes"                                                

                MDTabsBase:
                    id: prod_tab
                    name: 'products'
                    text: "Products"
                    MyLabel:
                        text: 'Strawberry Cake'
                    MyLabel:
                        text: 'Chocolate Cake'

                MDTabsBase:
                    id: pack_tab
                    name: 'packs'
                    text: "Pacotes"

是的,我仅使用KV语言。我在上面构建App的大部分布局,到目前为止,一切都很好,除了:/

我还尝试了另一种方式:

  • 与MDTabs类分开构建选项卡内容,但是这种方式似乎无法找到为每个选项卡制作不同内容的方法。

这是另一种样子:

enter image description here

和代码:

    Screen: 
        name: 'itemscad_food'
        BoxLayout:
            id: boxcad
            orientation: 'vertical'
            MDToolbar:
                id: toolcad
                title: "Item Register"
                md_bg_color: app.theme_cls.primary_color
                anchor_title: 'justify'
                left_action_items: [['menu-left', lambda x: app.back_button()]]
            BoxLayout:
                id: tabox
                orientation: 'vertical'
                MDTabs:
                    id: itemstab
                    tab_display_mode: 'text'            

                    MDTabsBase:
                        id: ingr_tab
                        name: 'ingredients'
                        text: "Ingredientes"                                                

                    MDTabsBase:
                        id: prod_tab
                        name: 'products'
                        text: "Products"

                    MDTabsBase:
                        id: pack_tab
                        name: 'packs'
                        text: "Pacotes"

            FloatLayout:       
                BoxLayout:
                    id: listbox
                    size_hint_y: None
                    height: boxcad.height - (toolcad.height + itemstab.tab_bar_height)
                    orientation: 'vertical'
                    ScrollView:
                        do_scroll_x: False
                        MDList:     
                            OneLineRightIconListItem:
                                text: 'Strawberry Cake'
                                MyListDeleteIcon:
                                    icon: 'trash-can'
                            OneLineRightIconListItem:
                                text: 'Chocolate Cake'
                                MyListDeleteIcon:
                                    icon: 'trash-can'
                            OneLineRightIconListItem:
                                text: 'Vanilla Cake'
                                MyListDeleteIcon:
                                    icon: 'trash-can'
                            ...

有人可以给我这个主意吗?

对于任何错误,我感到非常抱歉,因为我仍然习惯于对xD进行编码

还是谢谢!!

2 个答案:

答案 0 :(得分:1)

在您的python文件中创建一个将从FloatLayout和MDTabsBase继承的类,然后可以将Labels放置在所需的任何位置enter code here

从kivymd.uix.tab中

`导入MDTabsBase 从kivymd.uix.floatlayout导入FloatLayout

MyTab类(FloatLayout,MDTabsBase):

    pass

MyTab1类(FloatLayout,MDTabsBase):

    pass

`

使用Tab下的kivy文件访问该类,然后为它提供漂亮的外观

答案 1 :(得分:0)

您可以使用选项 allow_stretch 并在 MDTabs 下将其设置为 True。很抱歉,我似乎无法缩进代码。

MDTabs:
    id: itemstab
    tab_display_mode: 'text'
    allow_stretch: True