簡體   English   中英

如何在Kivy中更改禁用的小部件的顏色?

[英]How to change color of disabled widget in Kivy?

這只是我的應用程序的一小部分。
我有一個按鈕“嗨”。
我在gridlayout中還有2個按鈕“ 1”和“ 2”,id為w_10
按下“ Hi”時,w_10將被禁用。
現在,我不希望禁用w_10后“ 1”和“ 2”更改顏色,我希望它們與過去的狀態保持不變,即綠色。 請改進我的代碼。

我的代碼:

#!/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()

將yout按鈕的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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM