【问题标题】:How to set UI theme image in Python Kivy?如何在 Python Kivy 中设置 UI 主题图像?
【发布时间】:2021-06-03 02:14:54
【问题描述】:

我正在 Windows 上使用 Kivy 编写一个非常简单的应用程序,它只包含一堆切换按钮,并且希望能够轻松自定义所有按钮的颜色。目前它是一个单独的 python 文件,如果可能的话,我想将所有代码保留在该文件中。

如果我更改 Kivy 安装文件夹 (C:\Users\-\AppData\Local\Programs\Python\Python39\Lib\site-packages\kivy\data\images) 中的 defaulttheme-0.png,我的应用程序将使用该文件并显示图像中定义的颜色。

我想知道如何在不更改 Kivy 安装的情况下让我的应用使用图像的另一个副本作为其主题。

这是一个非常简单的一次性应用程序,用于通过串行与 Arduino 进行通信并控制几个继电器。到目前为止,我有这么多,而且一切都在按我的意愿工作:

import serial
from kivy.app import App
from kivy.uix.togglebutton import ToggleButton
from kivy.uix.boxlayout import BoxLayout

from kivy.core.window import Window
Window.size = (400, 100)

class R(App):
  def build(self):
    def pstate(PBTN,state):
      # serial communication
      print("P "+PBTN.state)
      
    def lstate(LBTN,state):
      # serial communication
      print("L "+LBTN.state)  
      
    PBTN = ToggleButton(text = 'P',
                        font_size=20,
                        state='down')
    PBTN.bind(state=pstate)
    
    LBTN = ToggleButton(text = 'L',
                        font_size=20,
                        state='down')
    LBTN.bind(state=lstate)
    
    b = BoxLayout(orientation='horizontal')
    b.add_widget(PBTN)
    b.add_widget(LBTN)
    return b
  
if __name__ == "__main__":
    R().run()

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    我自己没有尝试过,但是kivy.resources documentation 说你可以使用kivy.resources.resource_add_path 完成你想要的。

    实际上,here 描述了一种更简单的方法。只需将新的 defaulttheme-0.pngdefaulttheme.atas 复制到应用的 data/images 子文件夹中即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 2015-09-19
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      相关资源
      最近更新 更多