python - 使用画布绘制 kivy 矩形时出错
问题描述
我需要一些关于 kivy 的帮助,我对 kivy 很陌生,我做了一个类来绘制一个矩形作为背景。我很确定我做的一切都是正确的,但是有一个错误,所以这是我的代码 .py 文件
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.textinput import TextInput
class Background(Widget):
pass
class MY_browser(App):
def build(self):
return Background
MY_browser().run()
.kv 文件
Floatlayout:
Background:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
我已经尝试了很多东西,但没有任何区别,所以如果有人可以提供帮助,我将不胜感激
解决方案
几个问题:
- 在您的
build()
方法中,return Background
返回的是一个类,但该build()
方法应该返回一个Widget
实例。也许这应该是return Background()
。 - 在您的
kv
中,缩进不正确。所有缩进应该是相同数量的空格(通常为 4)的倍数。的缩进Background
太大。 - 您
kv
没有为 提供规则Background
,因此当Background()
返回时,它将只是一个空的Widget
。如果你想return Background()
,你应该有一个<Background>:
规则kv
。 - 如果您的
kv
文件名为my_browser.kv
,那么您根本不需要类的build()
方法App
。 - 如果您的
kv
文件未按上述方式命名,则您的构建方法可以是return Builder.load_file("kv file name")
,其中kv file name
替换为kv
文件的正确名称。 - 在
Floatlayout
你kv
的拼写错误。应该是FloatLayout
。