Kivy: настройка цвета текста на отключенной кнопке в кв - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь установить цвет текста на отключенной кнопке отдельно от обычного цвета текста кнопки. Поскольку кнопки основаны на метке, я попытался изменить disabled_color, но безуспешно. Как вы можете видеть на изображении, цвет шрифта отключенной кнопки (слева) остается таким же, как и у обычной кнопки справа. Отключено (слева) и обычное (справа) изображение Пожалуйста, помогите мне установить правильный цвет текста. Я использую python 3.7.3 и кивы 1.10.1

Button:
    #Set font
    font_size: '35sp'
    color: 1,1,1,1
    disabled_color: 25.0/255.0,25.0/255.0,25.0/255.0,1
    #Set background
    background_normal: 'button_normal.png'
    background_down: 'button_down.png'
    background_disabled_normal: 'button_normal_disn.png'
    background_disabled_down: 'button_normal_disd.png'

1 Ответ

0 голосов
/ 09 марта 2020

Это странно: disabled_color отлично работает для меня. Вы уверены, что первая кнопка на вашем изображении отключена? Вот мой код для тестирования - может быть, это поможет.

#!/usr/bin/python3.5
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang.builder import Builder
from kivy.properties import ObjectProperty, StringProperty
from kivy.atlas import Atlas

kv= Builder.load_string('''
<MainScreen>
    first_but:first_but
    orientation:"vertical"
    Button:
        id: first_but
        font_size: '35sp'
        color: 1,0,1,1
        disabled_color: 100.0/255.0,100.0/255.0,25.0/255.0,1
        text: root.enabled
        on_release: print("working")
    Button:
        font_size: '35sp'
        color: 1,0,1,1
        text: "toggle enablement of upper button"
        on_release: root.toggle_enable()

''')
class MainScreen(BoxLayout):
    first_but = ObjectProperty(None)
    enabled = StringProperty("enabled")

    def __init__(self, **kwargs):
        super(MainScreen, self).__init__(**kwargs)

    def toggle_enable(self):
        if self.enabled == "enabled":
            self.enabled = "disabled"
            self.first_but.disabled = True
        else:
            self.enabled = "enabled"
            self.first_but.disabled = False

class myApp(App):
    def build(self):
        return MainScreen()

if __name__ == "__main__":
    myApp().run()
...