当我启动程序时,它会显示黑屏。我将python文件用于功能,将kv文件用于对象的属性。 Py文件:
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
class FloatLayoutApp(App):
def build(self):
return FloatLayout()
FlApp = FloatLayoutApp()
FlApp.run()
kv文件:
<CustButton@Button>:
font_size: 32
color: 0, 0, 0, 1
size: 150, 50
background_normal: ""
background_down: "bg-grey.jpg"
background_color: .88, .88, .88, 1
size_hint: .4, .3
<FloatLayout>:
CustButton:
text: "Top Left"
pos_hint: {"x": 0, "top": 0}
CustButton:
text: "Bottom Left"
pos_hint: {"right": 1, "y": 0}
CustButton:
text: "Top Right"
pos_hint: {"right": 1, "top": 1}
CustButton:
text: "Bottom Left"
pos_hint: {"left": 1, "bottom": 0}
CustButton:
text: "Center"
pos_hint: {"center_x": 0, "center_y": 0}
答案 0 :(得分:1)
您将得到黑屏/黑屏,因为在构建方法中,它将返回FloatLayout小部件作为根,并且没有将任何小部件添加到根。
有两种方法可以将Kv代码加载到您的应用程序中:
按名称惯例:
Kivy在以下位置查找与您的App类同名的Kv文件 小写字母,如果以“ App”结尾则减去“ App”,例如:
MyApp -> my.kv
如果此文件定义了Root Widget,它将被附加到应用程序的 根属性,并用作应用程序小部件树的基础。
通过Builder::您可以告诉Kivy直接加载字符串或文件。如果此字符串或文件定义了根窗口小部件,它将是 方法返回的值:
Builder.load_file('path/to/file.kv')
或:
Builder.load_string(kv_string)
有一些解决问题的方法。
将kv文件重命名为floatlayout.kv
将类规则<FloatLayout>:
替换为根规则FloatLayout:
from kivy.lang import Builder
return FloatLayout()
替换为return Builder.load_file('kv-filename.kv')