Как изменить цвет фона элемента TabbedPanelItem в Kivy - PullRequest
0 голосов
/ 26 марта 2019

Я хочу изменить цвет фона на своих вкладках и изменить цвет по умолчанию на серый, но мне не удается выяснить, как это сделать.

Я попытался определить холст, но это простозаканчивает тем, что создает как цветной слой поверх вкладки, и тогда я не могу прочитать текст на вкладке.

мой .py файл:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

class IntroScreen(Screen):
    pass

class MainScreen(Screen):
    pass

class ScreenManagement(ScreenManager):
    pass

app=Builder.load_file("main.kv")

class mainApp(App):
    def build(self):
        return app

mainApp().run()

main.kv файл:

#: import FadeTransition kivy.uix.screenmanager.FadeTransition
#: import get_color_from_hex kivy.utils.get_color_from_hex

ScreenManagement:
    transition: FadeTransition()
    MainScreen:

<MainScreen>:
    name: "main_screen"

    BoxLayout:
        orientation: "horizontal"
        height: 30

        BoxLayout:
            orientation: "horizontal"

            TabbedPanel:
                do_default_tab: False
                tab_width: self.parent.width/2
                canvas.before:
                    Color:
                        rgb: get_color_from_hex("#ffffff")
                    Rectangle:
                        size: self.size
                        pos: self.pos

                TabbedPanelItem:
                    text: "Tab 1"
                    color: get_color_from_hex("#ffffff")
                    markup: True
                    Label:
                        text: "contents of tab 1"
                        color: get_color_from_hex("#000000")
                        canvas.before:
                            Color:
                                rgb: get_color_from_hex("#ffffff")
                            Rectangle:
                                size: self.size
                                pos: self.pos

                TabbedPanelItem:
                    text: "Tab 2"
                    markup: True
                    Label:
                        text: "contents of tab 2"
                        color: get_color_from_hex("#000000")
                        canvas.before:
                            Color:
                                rgb: get_color_from_hex("#ffffff")
                            Rectangle:
                                size: self.size
                                pos: self.pos

1 Ответ

0 голосов
/ 26 марта 2019

Вкладка является классом TabbedPanelHeader, и они имеют следующие свойства, как виджет кнопки.

Пример

Добавьте в файл kv следующее:

<TabbedPanelHeader>:
    background_normal: 'blue.png'
    background_down: 'red.png'

выход

Tab1 Pressed Tab2 Pressed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...