Python kivy从kivy文件中的* .py文件获取标签

时间:2018-08-03 08:51:56

标签: python text kivy kivy-language

我正在尝试从python文件(labels.py)中获取标签,并将这些标签注入到kivy文件(pong.kv)内部的标签中。

# main.py
from kivy.app import App
from kivy.uix.widget import Widget


class PongGame(Widget):
    pass


class PongApp(App):
    def build(self):
        return PongGame()


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

这是labels.py文件:

# labels.py
WORLD = "World"

这是kv文件:

#: kivy 1.10.1
#: import labels pygame.labels

<PongGame>:
    canvas:
        Rectangle:
            pos: self.center_x - 5, 0
            size: 10, self.height

    Label:
        font_size: 70
        center_x: root.width / 4
        top: root.top - 50
        text: WORLD

如果运行main.py文件,则会收到错误“ NameError:未定义名称'WORLD'”。用“世界”代替WORLD毫无问题。

1 个答案:

答案 0 :(得分:1)

假设您未安装pygame library(如果已安装pygame库,则导入时会发生冲突),根据{{3},导入.kv的方式与python规则相同},因此您要导入.kv:

#: import labels pygame.labels

它将以以下方式转换为python:

from pygame.labels as labels

因此,请记住上述内容,获取“ WORLD”的方法是使用名称空间,即labels.WORLD。因此,.kv应该是以下内容:

#: kivy 1.10.1
#: import labels pygame.labels

<PongGame>:
    canvas:
        Rectangle:
            pos: self.center_x - 5, 0
            size: 10, self.height

    Label:
        font_size: 70
        center_x: root.width / 4
        top: root.top - 50
        text: labels.WORLD