我似乎无法为简单的应用程序设置背景图像。我是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文件仍然需要它吗? 谢谢你的帮助。所有的导入都来自按钮和我的图像。它会出现,但在左下角。 再次感谢
答案 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个反斜杠