在kivy中禁用小部件而不会使其颜色变暗

时间:2015-05-05 13:54:54

标签: kivy

我的应用程序有一个按钮,可以在on_press事件中禁用其他两个按钮(在同一个gridlayout中)。
我不希望我的按钮在禁用后变暗,我希望它们保持原始颜色。

我的尝试:

#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')

from random import random
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.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from random import random
from random import choice
from kivy.properties import StringProperty
import time
from kivy.clock import Clock
from functools import partial



Builder.load_string("""
<MenuScreen>:
    GridLayout:
        cols: 1
        Button:
            text: "press me to disable button 1 and button 2"
            on_press: root.val0()
        GridLayout:
            id:w_101
            cols: 1
            Button:
                text: "button 1"
                background_normal: ''
                background_color:(0.988, 0.53, 0.0, 1.0)
            Button:
                text: "button 2"
                background_normal: ''
                background_color:(0.988, 0.53, 0.0, 1.0)

""")

class MenuScreen(Screen):
    def val0(self):
        self.ids['w_101'].disabled=True

sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)

class TestApp(App):

    def build(self):
        return sm

if __name__ == '__main__':
    TestApp().run()

我在gridlayout中找不到任何不对禁用项目应用深色的属性。 这不起作用:

self.ids['w_101'].background_normal=''

请帮帮我。

2 个答案:

答案 0 :(得分:0)

尝试设置按钮的<preference name="android-minSdkVersion" value="10" /> 属性。

答案 1 :(得分:0)

禁用窗口小部件时,有时会像Button一样更改其背景图像。您已经设置了background_normal,但是您也需要将其设置为禁用按钮,因此答案就在您的kv文件中:

Button:
    text: "button 1"
    background_normal: ''
    background_disabled_normal: self.background_normal ## This
    background_color:(0.988, 0.53, 0.0, 1.0)