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中设置禁用按钮上的文本颜色的主要内容,如果未能解决你的问题,请参考以下文章