展开面板未在kivymd中展开

问题描述 投票:1回答:1

kivymd中的我的MDExpansionPanel没有扩展,我已经在.kv文件中编写了该代码

这是我的.py文件

from kivymd.app import MDApp


class TtApp(MDApp):
    pass


TtApp().run()

这是我的.kv文件

Screen:
    BoxLayout:
        orientation: "vertical"

        MDExpansionPanelTwoLine:
            text: ''
            secondary_text: 'email: [email protected]'

            IconLeftWidget:
                icon: "email"

        TwoLineAvatarListItem:
            text: ''
            secondary_text: 'to: @gmail.com'

            IconLeftWidget:
                icon: "email"
kivy python-3.7 kivy-language expansion
1个回答
0
投票

我知道了它的工作原理,我认为是您建立它的方法的反映。

似乎您必须通过Python而不是KV语言来构建MDExpansionPanel。另外,您必须为content对象定义panel_clsMDExpansionPanel

您是新来的main.py

from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.expansionpanel import MDExpansionPanel, MDExpansionPanelTwoLine
from kivymd import images_path


class Content(MDBoxLayout):
    pass


class TtApp(MDApp):

    def on_start(self):
        self.root.ids.box.add_widget(
            MDExpansionPanel(
                icon=f"{images_path}folder.png", # need an email .png here
                content=Content(),
                panel_cls=MDExpansionPanelTwoLine(
                    text='',
                    secondary_text='email: [email protected]',
                )
            )
        )


TtApp().run()

这是您的新tt.kv:

<Content>:
    adaptive_height: True

    TwoLineAvatarListItem:
        text: ''
        secondary_text: 'to: @gmail.com'

        IconLeftWidget:
            icon: "email"

Screen:
    BoxLayout:
        orientation: "vertical"
        id: box
© www.soinside.com 2019 - 2024. All rights reserved.