【问题标题】:kivy: change background color to whitekivy:将背景颜色更改为白色
【发布时间】:2014-01-19 06:57:38
【问题描述】:

我想要一个带有黑色按钮和标签以及白色文本的应用程序,因此,我希望用空白空间分隔这些小部件。我想为了做到这一点,有必要将背景从默认颜色(黑色)转换为白色。实现这一目标的最佳方法是什么?谢谢!

【问题讨论】:

    标签: kivy


    【解决方案1】:

    一种简单的方法是在根小部件后面简单地绘制一个大的白色矩形。例如,在 kivy 语言中,您可以这样做

    <YourRootWidget>:
        canvas.before:
            Color:
                rgba: 1, 1, 1, 1
            Rectangle:
                pos: self.pos
                size: self.size
    

    我想你也可以直接设置kivy清除窗口背景的颜色,暴露为Window.clearcolor。你会这样做

    from kivy.core.window import Window
    Window.clearcolor = (1, 1, 1, 1)
    

    您可能需要将它放在应用程序中的任何其他内容之前,因为如果在创建窗口后运行它不会影响任何内容。

    【讨论】:

    • 谢谢!有趣的是,“Window.clearcolor”解决方案似乎可以在任何时候使用,而不仅仅是在创建窗口之前。
    • 好吧,我猜 ClearColor 指令在图形树的顶部。只要有效!
    • 我喜欢这个!我一直在摆弄年龄来改变 Pong 背景颜色:D
    • 如何在标签小部件后面绘制它?
    • 此代码应在标签画布上的其余内容之前添加矩形。
    【解决方案2】:

    我为此创建了一个模块。请查收:Details on Github

    #Change background color of a kivy layout
    #Place the CustomGraphics.py file to a folder
    #code starts here
    
    import sys
    sys.path.append([path to CustomGraphics.py])
    from CustomModules import CustomGraphics
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    from kivy.uix.label import Label
    
    class TestApp(App):
        def build(self):
            layout = BoxLayout(orientation='vertical', size=(Window.width, Window.height))
            label = Label(text="Remember my name: It's Smruti Ranjan Gochhayat")
            layout.add_widget(label)
            CustomGraphics.SetBG(layout, bg_color=[1,0,0,1])
            return layout
    if __name__ == '__main__':
        TestApp().run()
        
    #code ends here
    

    希望对大家有帮助

    【讨论】:

    • 你应该直接在这里发布函数的代码。此外 CustomGraphics 不需要从 App 继承
    猜你喜欢
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2022-11-01
    • 2019-08-20
    • 2020-04-03
    相关资源
    最近更新 更多