这是在.kv和.py文件之间链接小部件的最佳方法

时间:2018-02-08 21:32:17

标签: python user-interface kivy kivy-language

我需要一些帮助才能了解Kivy图书馆。 如果我必须像这个例子那样创建一个问题:enter image description here

但是有一个按钮才能改变页面,我将继续保持相同的位置? 我如何将大量小部件链接在一起,将.kv文件与.py文件链接在一起? 我尝试但没有任何结果。

例如,我已经用按钮和彩色背景编写了这段代码,但它不起作用:

.py部分:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout

class Principale(BoxLayout):
    pass


class TryApp(App):
    def build(self):
        self.root = Builder.load_file('questionario.kv')
        Principale()


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

.kv Part:

#:kivy 1.0.9
<Principale>:
    canvas:
        Color:
            rgb : 0.2549,0.73333,0.12156
        Rectangle:
            size:self.size
    size_hint : 1,1
    orientation:"vertical"
    padding : 30

    Button:
        text: "ciao"
        size_hint : 0.12,0.12

非常感谢

1 个答案:

答案 0 :(得分:1)

class TryApp(App):
    def build(self):
        self.root = Builder.load_file('questionario.kv')
        Principale()

您需要在此处返回Principale。

return Principale()

不只是创造它。

此外,您调用了App TryApp,但是您正在尝试运行名为PongApp的东西

所以这个:

PongApp().run()

应该是:

TryApp().run()

所以它最终应该是这样的:

class TryApp(App):
    def build(self):
        self.root = Builder.load_file('questionario.kv')
        return Principale()


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

注意:它是无害的,但您不需要将root用户声明为kv。在这种情况下它已经知道了。