2017-01-01 8 views
3

Я пытаюсь создать простое приложение, которое воспроизводит музыку каждый раз, когда вы нажимаете кнопку, которую я создал в киви. Я хотел бы добавить графику и стиль, поскольку цвет по умолчанию является просто серым. Как мне изменить цвет на красный? Я попытался реализовать параметр background_color, но это ничего не меняет. Я прикрепил свой код ниже:Как изменить цвет фона кнопки в Kivy?

<Test>: 
     do_default_tab: False 
     Widget: 
     canvas.before: 
      Rectangle: 
       size: self.size 
       pos: self.pos 


    TabbedPanelItem: 

     text: 'Opera' 

     text_size: self.size 


     BoxLayout: 
      orientation: 'vertical' 
      padding: 20 
      spacing: 10 

      Button: 

       text: 'Nessun Dorma' 
       text_size: self.size 
       on_press: root.nessun_dorma() 


       halign: 'center' 
       valign: 'middle' 

       font_size: 20 

ответ

6

Вы можете использовать состояние и background_color, чтобы достичь желательного поведения

<FunkyButton>: 
    background_color: (1,0,0,1) if self.state == 'normal' else (0,1,0,1) 
    background_normal: "" 
    #background_down: "" #optional if you want your color pressed 

цвет без изменений ...

таким образом кнопка будет красным, если предварительно не является ssed и green, когда это ...

+0

Это было хорошим решением, но когда я попытался: background_color: (0,0,0,1) if self.state == 'normal' else (1, 1,1,1) Я получил голубой цвет вместо белого на кнопке. – RufusVS

+0

@RufusVS - попробуйте добавить background_down: "" –

2

Один из способов использования изображений. Создание изображения извне и загрузить одну или другую сторону в зависимости от состояния:

ToggleButton: 
    id: 'enableBtn' 
    text: 'Enable' 
    state: 'normal' 
    background_normal: 'enable.png' 
    background_down: 'disable.png' 
    on_release: root.on_disable() 

Я также нашел этот пост очень helpful, поскольку это также объясняет, как изменить форму кнопки

Смежные вопросы