【问题标题】:How do I change the background color of a button in Kivy?如何更改 Kivy 中按钮的背景颜色?
【发布时间】:2023-03-19 17:25:02
【问题描述】:

我正在尝试构建一个简单的应用程序,每次单击我在 kivy 中构建的按钮时都会播放音乐。我想添加图形和样式,因为默认颜色只是纯灰色。我该如何将颜色更改为红色?我已经尝试实现 background_color 参数,但这并没有改变任何东西。我在下面附上了我的代码:

   <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

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    您可以使用 state 和 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 
    

    颜色不变...

    这样按钮未按下时为红色,按下时为绿色...

    【讨论】:

    • 这看起来是一个很好的解决方案,但是当我尝试时: background_color: (0,0,0,1) if self.state=='normal' else (1,1,1,1)按下按钮时我得到的是青色而不是白色。
    • @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,因为它还解释了如何更改按钮的形状

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-09
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      相关资源
      最近更新 更多