1

我正在尝试学习如何使用 KivyMD 进行编程。在做了一些研究并观看了一些教程之后,我将 GUI 与跟踪和错误方法结合在一起。

目前我正在尝试更改选项卡文本和图标的颜色。经过数小时的在线搜索,我仍然无法更改它们。.kv 文件中的 and 似乎对它们没有影响text_color_normal:text_color_active:我觉得我在这里做一些根本错误的事情。有人可以给我一些提示如何进行吗?Main.py 和 .KV 文件如下。

提前致谢!

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.uix.tab import MDTabsBase
from kivymd.font_definitions import fonts
from kivymd.icon_definitions import md_icons
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget


Window.size = (300, 500) # voor develop doeleinden mobielscherm


class Screen1(Screen):
    pass


class Screen2(Screen):
    pass


class Screen3(Screen):
    pass


class Screen4(Screen):
    pass


class Tab(FloatLayout, MDTabsBase):
    pass


class Tab1(FloatLayout, MDTabsBase):
    pass


class DemoApp(MDApp):

    def build(self):

        self.theme_cls.primary_palette = 'Red'
        screen = Builder.load_file('demo_file.kv')

        return screen

    def navigation_draw(self):
        print('navigation')


DemoApp().run()

演示文件.kv

Screen:
    NavigationLayout:

        ScreenManager:
            id:screen_manager

            Screen1:
                name: 'home_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Home'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 0
                        specific_text_color: 0,0,0,1

                    MDTabs:
                        id:android_tabs
                        tab_bar_height: '35dp'
                        background_color: 1,0,0,0.85
                        elevation: 0
                        text_color_normal: 0, 1, 0, 1
                        text_color_active: 1, 0, 0, 1
                        color_indicator: 0.95, 0.95, 0.1, 1

                        Tab:
                            text: 'Tab1'

                        Tab1:
                            text: 'chart-pie'

                    MDBottomAppBar:

                        MDToolbar:
                            title: 'Start sessie'
                            mode: 'end'
                            type: 'bottom'
                            on_action_button: app.navigation_draw()
                            icon: 'beer'
                            icon_color: 0.95, 0.95, 0.1, 1

            Screen2:
                name: 'profile_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Profiel'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 7
                    Widget:

            Screen3:
                name: 'session_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Sessies'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 10
                    Widget:


            Screen4:
                name: 'logout_screen'

                BoxLayout:
                    orientation: 'vertical'

                    MDToolbar:
                        title: 'Uitloggen'
                        left_action_items: [['menu', lambda x: nav_drawer.set_state("open")]]
                        elevation: 10
                    Widget:

        MDNavigationDrawer:
            id:nav_drawer

            BoxLayout:
                orientation: 'vertical'
                spacing: '8dp'
                padding: '8dp'

                Image:
                    source: 'avatar.jpg'

                MDLabel:
                    text: '     Name'
                    front_style: 'Subtitle1'
                    size_hint_y: None
                    height: self.texture_size[1]

                MDLabel:
                    text: '     email@hotmail.com'
                    front_style: 'Caption'
                    size_hint_y: None
                    height: self.texture_size[1]

                ScrollView:
                    MDList:
                        OneLineIconListItem:
                            text: 'Profiel'
                            on_press: screen_manager.current = 'profile_screen'
                            IconLeftWidget:
                                icon: 'face-profile'
                                on_press: screen_manager.current = 'profile_screen'


                        OneLineIconListItem:
                            text: 'Drink sessies'
                            on_press: screen_manager.current = 'session_screen'
                            IconLeftWidget:
                                icon: 'beer'
                                on_press: screen_manager.current = 'session_screen'

                        OneLineIconListItem:
                            text: 'Uitloggen'
                            on_press: screen_manager.current = 'logout_screen'
                            IconLeftWidget:
                                icon: 'logout'
                                on_press: screen_manager.current = 'logout_screen'

<Tab>:

    MDLabel:

        text:'tab1'
        user_font_size: "48sp"
        pos_hint: {"center_x": .5, "center_y": .5}

<Tab1>:

    MDLabel:

        text:'tab2'
        user_font_size: "48sp"
        pos_hint: {"center_x": .5, "center_y": .5}
4

3 回答 3

1

我终于弄清楚了为什么我的代码不起作用。在网上搜索时,我偶然发现了更改日志,我发现未发布的版本包含对text_color_normaland的修复text_color_active。这意味着在我当前的版本(0.104.1)中,参数没有按应有的方式工作。安装 KivyMDpip install https://github.com/kivymd/KivyMD/archive/master.zip对我有用。

感谢您为解决此问题所做的努力!

于 2020-08-14T18:27:46.500 回答
0

更改选项卡的文本/图标的颜色?这对我有用。

也许尝试重新安装 KivyMD。

于 2020-08-11T08:57:30.353 回答
0

改为测试: text_color : rgba(253, 0, 253,255) 它对我有用

于 2020-12-06T17:26:38.560 回答