Kivy:在kv中设置禁用按钮上的文本颜色

Posted

技术标签:

【中文标题】Kivy:在kv中设置禁用按钮上的文本颜色【英文标题】:Kivy: setting the color of text on a disabled button in kv 【发布时间】:2020-06-21 13:18:57 【问题描述】:

我正在尝试将禁用按钮上的文本颜色与按钮文本的正常颜色分开。由于按钮基于标签,我尝试更改 disabled_color 但没有成功。 正如您在图像中看到的,禁用按钮(左)的字体颜色仍然与正常按钮右相同。 Disabled (left) and normal (right) botton 请帮我正确设置文本颜色。 我正在使用 python 3.7.3 和 kivy 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】:

这很奇怪: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()

【讨论】:

感谢您的代码。它帮助我找到了问题所在。我的安装有问题。我从 kivy 重新安装了所有内容,现在得到了预期的结果。

以上是关于Kivy:在kv中设置禁用按钮上的文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bootstrap 4 和 Sass 中设置自定义按钮文本颜色?

为啥我没有在 kivy 中设置?

如何在 Kivy、Python 中更新标签的文本

如何在flex中设置文本突出显示颜色?

更改 Kivy 小部件部分文本的颜色

在片段中设置文本颜色