如何更改 Kivy 中禁用的小部件的颜色?
How to change color of disabled widget in Kivy?
这只是我申请的一小部分。
我有一个按钮 "Hi".
我在 gridlayout 中还有 2 个按钮“1”和“2”,id 是 w_10
按 "Hi" 后,w_10 将被禁用。
现在,我不希望“1”和“2”在 w_10 被禁用后改变颜色,我想让它们与过去的状态相同,即绿色。请改进我的代码。
我的代码:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
Builder.load_string("""
<MenuScreen>:
GridLayout:
cols: 1
Button:
text: 'HI'
on_press: root.change()
GridLayout:
id: w_10
rows:1
Button:
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
Button:
text:'2'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
""")
# Declare both screens
class MenuScreen(Screen):
def change(self):
self.ids['w_10'].disabled=True
sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
将 background_disabled_normal
属性 个按钮设置为空字符串:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
Builder.load_string("""
<MenuScreen>:
GridLayout:
cols: 1
Button:
text: 'HI'
on_press: root.change()
GridLayout:
id: w_10
rows:1
Button:
background_disabled_normal: ''
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
Button:
background_disabled_normal: ''
text:'2'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
""")
# Declare both screens
class MenuScreen(Screen):
def change(self):
self.ids['w_10'].disabled = True
sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
如果您希望文本颜色不变,也可以使用 disabled_color
属性:
Button:
background_disabled_normal: ''
disabled_color: 1, 1, 1, 1
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
这只是我申请的一小部分。
我有一个按钮 "Hi".
我在 gridlayout 中还有 2 个按钮“1”和“2”,id 是 w_10
按 "Hi" 后,w_10 将被禁用。
现在,我不希望“1”和“2”在 w_10 被禁用后改变颜色,我想让它们与过去的状态相同,即绿色。请改进我的代码。
我的代码:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
Builder.load_string("""
<MenuScreen>:
GridLayout:
cols: 1
Button:
text: 'HI'
on_press: root.change()
GridLayout:
id: w_10
rows:1
Button:
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
Button:
text:'2'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
""")
# Declare both screens
class MenuScreen(Screen):
def change(self):
self.ids['w_10'].disabled=True
sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
将 background_disabled_normal
属性 个按钮设置为空字符串:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
Builder.load_string("""
<MenuScreen>:
GridLayout:
cols: 1
Button:
text: 'HI'
on_press: root.change()
GridLayout:
id: w_10
rows:1
Button:
background_disabled_normal: ''
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
Button:
background_disabled_normal: ''
text:'2'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)
""")
# Declare both screens
class MenuScreen(Screen):
def change(self):
self.ids['w_10'].disabled = True
sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
如果您希望文本颜色不变,也可以使用 disabled_color
属性:
Button:
background_disabled_normal: ''
disabled_color: 1, 1, 1, 1
text: '1'
background_normal: ''
background_color:(0.207, 0.635, 0.423, 0.9)