我有一个简单的kivy应用程序与kv文件关联如下,我想重新使用我的自定义小部件(包括他的外观)在另一个kivy应用程序。这是要重用的小部件:
class MyButton(Button):
pass
class MyComposit(Widget):
button1 = ObjectProperty(None)
lab = ObjectProperty(None)
class MyApp(App):
def build(self):
comp = MyComposit()
return comp
if __name__ == '__main__':
MyApp().run()
my.kv文件:
<MyButton>
canvas:
Rectangle:
size: 30,30
pos: self.pos
<MyComposit>
size: 400,500
button1: btn1
lab: lb
Label
id: lb
text: "label"
pos: root.center_x,root.center_y
MyButton:
id: btn1
text: "btn1"
pos: root.x/3,200
为什么我的下一个应用中没有显示我的小部件MyComposit的空白页?
from my_composit import MyComposit
class BigWidget(Widget):
n = ObjectProperty(None)
class BigApp(App):
def build(self):
b = BigWidget()
return b
if __name__ == '__main__':
BigApp().run()
big.kv文件:
#:kivy 1.0.9
<BigWidget>
n: idcomp
MyComposit:
id: idcomp
答案 0 :(得分:0)
您的新应用程序不包含MyComposit小部件的kv规则,因此它可能正常工作但只是没有显示您可见的任何内容。将相关的kv复制到big.kv以使其正常工作。
您可能也想查看布局类,否则您必须手动设置所有内容的位置和大小。