Niek
Niek

Reputation: 35

Cannot change Tabs text and icon colors in KivyMD

Iam trying to learn how to program with KivyMD. After doing some research and watching some tutorials iam putting a GUI together with the trail-and-error approach.

At the moment iam trying to change the colors of the Tab text and icons. After hours of online searching iam still not able to change them. The text_color_normal:and text_color_active: in the .kv file simply seems to have no effect on them. I have the feeling iam doing something fundamentally wrong here. Can somebody give me some tips how to proceed? Main.py and .KV file are below.

Thanks in advance!

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 protected]'
                    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}

Upvotes: 1

Views: 1605

Answers (3)

RICO MIRACETI
RICO MIRACETI

Reputation: 1

test this instead : text_color : rgba(253, 0, 253,255) it's worked for me

Upvotes: 0

Niek
Niek

Reputation: 35

I finally figured out why my code was not working. While searching the web i stumbled across the change logs and i found out that the unreleased version contains a fix for text_color_normal and text_color_active. Which means that in my current version (0.104.1) the parameters did not work the way they should. Installing KivyMD with pip install https://github.com/kivymd/KivyMD/archive/master.zip works for me.

Thanks for your effort to solve this!

Upvotes: 1

Trancvundo
Trancvundo

Reputation: 16

Change the color of the text/icon of the tabs? That is working for me.

Maybe try reinstall KivyMD.

Upvotes: 0

Related Questions