【问题标题】:How to set a template color to a canvas of a kivy UI?如何将模板颜色设置为 kivy UI 的画布?
【发布时间】:2015-03-23 13:37:23
【问题描述】:

嘿嘿

我喜欢为用于绘制多个 GUI 组背景的颜色定义一个模板。

我的 kivy kv 代码如下所示:

<BGRcolor@Color>:
    rgb: 0.176, 0.176, 0.176

<myParamBox@BoxLayout>:
    canvas:
        BGRcolor:

        Rectangle:
            pos: root.pos
            size: root.size
        Color:
            rgb: 0.3, 0.3, 0.3
        Line:
            points: root.pos[0],root.pos[1], root.pos[0] + root.size[0],root.pos[1], root.pos[0] + root.size[0],root.pos[1] + root.size[1], root.pos[0] ,root.pos[1] + root.size[1], root.pos[0],root.pos[1]
    padding: 2

画布操作的颜色设置不起作用。有什么想法吗?

【问题讨论】:

    标签: python canvas colors kivy


    【解决方案1】:

    颜色不是一个小部件,所以你不能这样构造它。实际上,实际上并没有一种语法可以直接使其更简洁,但是您可以例如使您希望具有此颜色的所有小部件都从具有颜色规则的另一个小部件继承。

    【讨论】:

      【解决方案2】:

      我找到了一个可行的解决方案:

      class myApp(kivy.app.App):
      
          BGcolor = (0.176, 0.176, 0.176, 1.0)
      
      kivy.lang.Builder.load_string('''
      <myParamBox@BoxLayout>:
          canvas:
              Color:
                  rgb: app.BGcolor
              Rectangle:
                  pos: root.pos
                  size: root.size
              Color:
                  rgb: 0.3, 0.3, 0.3
              Line:
                  points: root.pos[0],root.pos[1], root.pos[0] + root.size[0],root.pos[1], root.pos[0] + root.size[0],root.pos[1] + root.size[1], root.pos[0] ,root.pos[1] + root.size[1], root.pos[0],root.pos[1]
          padding: 2
      ''')
      

      在应用实例中定义颜色图并在模板中引用它。

      【讨论】:

        猜你喜欢
        • 2021-11-29
        • 1970-01-01
        • 2018-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-02
        相关资源
        最近更新 更多