如何使用.kv文件设置主屏幕的背景?

时间:2015-08-28 15:39:45

标签: python kivy

我似乎无法为简单的应用程序设置背景图像。我是kivy的新手,也是python的新手。这看起来很简单,但我找到的所有示例都使用.py文件中的kv语言,而不是我想学习如何使用的.kv文件。

start_screen.py

import kivy
kivy.require('1.9.0')

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.uix.image import Image

class StartScreen(FloatLayout):

    def __init__(self, **kwargs):
        super(StartScreen, self).__init__(**kwargs)

class TestApp(App):

def build(self):
    return StartScreen()

if __name__=='__main__':
    TestApp().run()

test.kv

#:kivy 1.9

<StartScreen>:
    FloatLayout:
        orientation: 'horizontal'
        canvas:
            Rectangle:
                source: 'C:\Kivy\graphics\bg.png'
                size: self.size
                pos: self.pos

我已经阅读了所需的绑定示例,但是.kv文件仍然需要它吗? 谢谢你的帮助。所有的导入都来自按钮和我的图像。它会出现,但在左下角。 再次感谢

4 个答案:

答案 0 :(得分:2)

我发现使用canvas.Rectangle引用像'C:\ Kivy \ graphics \ bg.png'这样的背景图片不起作用。我能让它工作的唯一方法是将图像放在与应用程序相同的文件夹中。我能够使用Image和Button小部件引用png,但出于某种原因不是canvas.Rectangle。

<StartScreen>:
orientation: 'horizontal'
canvas.before:
    Rectangle:
        pos: self.pos
        size: self.size
        source: 'bg.png'

答案 1 :(得分:1)

.kv文件中的源代码应仅包含正斜杠“ /”

#:kivy 1.9

<StartScreen>:
    FloatLayout:
        orientation: 'horizontal'
        canvas:
            Rectangle:
                source: 'C:/Kivy/graphics/bg.png'
                size: self.size
                pos: self.pos

答案 2 :(得分:0)

如果您只想要背景颜色,这应该足够了(canvas.before在窗口小部件内容之前绘制画布):

canvas.before:
    Color:
        rgb: 1, 0, 0
    Rectangle:
        pos = self.pos
        size = self.size

答案 3 :(得分:0)

尝试使用2个反斜杠来更改'C:\Kivy\graphics\bg.png',或使用相对文件路径,例如'..\\graphics\\bg.png'也一起使用2个反斜杠