微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MDSelectionList 属性无法修改

如何解决MDSelectionList 属性无法修改

我在带有 MDNavigationRail 的选项卡内使用 mdselectionList 在屏幕之间切换,但是,当我尝试自定义 mdselectionList 时,没有任何视觉更改适用。我认为这可能是小部件本身的问题,但后来我将它分开并且属性更改起作用了。如何将更改应用于选择列表? (我正在使用 master 分支的 kivymd 0.104.2.dev0) 我的代码

from kivy.config import Config

Config.set('graphics','width','850')
Config.set('graphics','height','530')
Config.set('graphics','minimum_width','minimum_height','530')
from kivy.lang import Builder
from kivymd.uix.card import MDCard
from kivymd.uix.tab import MDTabsBase
from kivymd.app import MDApp


class SettingsTab(MDCard,MDTabsBase):
    pass

class Example(MDApp):

    def __init__(self,**kwargs):
        super(Example,self).__init__(**kwargs)
        self.kv = Builder.load_string('''
#:kivy 2.0.0
<SettingsTab>:
    orientation: "vertical"
    size_hint: .95,.95
    pos_hint: {"center_x": .5,"center_y": .5}
    border_radius: 5
    radius: [5]
    elevation: 20
BoxLayout:
    MDNavigationRail:
        color_active: app.theme_cls.primary_color
        MDNavigationRailItem:
            icon: "list-status"
            on_release:
                screens.current = "downloads_screen"
        MDNavigationRailItem:
            icon: "cog"
            on_release:
                screens.current = "settings"
        MDNavigationRailItem:
            icon: "information"
            on_release:
                screens.current = "activity_log"

    ScreenManager:
        id: screens
        Screen:
            name: "downloads_screen"
        Screen:
            name: "activity_log"
        Screen:
            name: "settings"
            MDTabs:
                SettingsTab:
                    title: "DOWNLOAD"
                    mdselectionList:
                        overlay_color: 1,.5
                        icon_bg_color: 0,0
                        icon_check_color: 0,0
                        OneLineIconListItem:
                            text: "Just me!"
                            IconLeftWidget:
                                icon: "circle-outline"
                                pos_hint: {"center_x": .5,"center_y": .5}
                        OneLineIconListItem:
                            text: "Just me!"
                            IconLeftWidget:
                                icon: "circle-outline"
                        OneLineIconListItem:
                            text: "Just me!"
                            IconLeftWidget:
                                icon: "circle-outline"
                        OneLineIconListItem:
                            text: "Just me!"
                            IconLeftWidget:
                                icon: "circle-outline"
                SettingsTab:
                    title: "COLOR"
                SettingsTab:
                    title: "INFO"''')

    def build(self):
        self.theme_cls.theme_style = "Dark"
        self.theme_cls.primary_palette = "Blue"
        self.theme_cls.accent_palette = "teal"
        return self.kv


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

解决方法

试试这样的方法。

from kivy.lang import Builder

from kivymd.uix.card import MDCard
from kivymd.uix.tab import MDTabsBase
from kivymd.app import MDApp
    
kv = ("""
<Check@ILeftBodyTouch+MDCheckbox>:
    group: 'group'
    size_hint: None,None
    size: dp(48),dp(48)
    
<SettingsTab>:
    orientation: "vertical"
    size_hint: .95,.95
    pos_hint: {"center_x": .5,"center_y": .5}
    border_radius: 5
    radius: [5,]
    elevation: 20

BoxLayout:
    MDNavigationRail:
        color_active: app.theme_cls.primary_color
        MDNavigationRailItem:
            icon: "cog"
            on_release:
                screens.current = "settings"

    ScreenManager:
        id: screens
        Screen:
            name: "settings"
            MDTabs:
                SettingsTab:
                    title: "DOWNLOAD"
                    MDList:
                        spacing: 10
                        OneLineAvatarIconListItem:
                            text: "Just me!"
                            Check:
                            
                        OneLineAvatarIconListItem:
                            text: "Just me!"
                            Check:

                        OneLineAvatarIconListItem:
                            text: "Just me!"
                            Check:
""")


class SettingsTab(MDCard,MDTabsBase):
    pass
    
    
class Example(MDApp):

    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.kv = Builder.load_string(kv)

    def build(self):
        return self.kv


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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?