【问题标题】:Cannot change Tabs text and icon colors in KivyMD无法更改 KivyMD 中的选项卡文本和图标颜色
【发布时间】:2020-07-29 13:22:14
【问题描述】:

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

目前我正在尝试更改选项卡文本和图标的颜色。经过数小时的在线搜索,我仍然无法更改它们。 .kv 文件中的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()

demo_file.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}

【问题讨论】:

    标签: tabs kivy-language kivymd


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      也许尝试重新安装 KivyMD。

      【讨论】:

      • 是的,我尝试使用TabTab1 下的text_color_normaltext_color_active 来编辑颜色,但遗憾的是没有效果。 Offcourse 带有正确的缩进。感谢您的努力!
      • 在 MDTabs 下。不是单个选项卡。你的代码中已经有了它。或者您是否尝试更改单个标签?
      • 没有我试图更改所有选项卡上图标和文本的颜色。我已经在 MDTabs 下编写的代码对选项卡的文本或图标没有任何影响。你能告诉我更多关于你改变颜色的方式吗?
      • 您的代码,红色和绿色 Example1 更改为蓝色 Example2
      • 奇怪的是......我有完全相同的代码,但它在我的应用程序中不起作用。我可以更改指示器的颜色,但不能更改文本。我觉得我的kivymy有问题。感谢您的澄清!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-06
        相关资源
        最近更新 更多