如何使用kivy将gui添加到我的python项目中?

时间:2019-01-21 15:09:38

标签: python user-interface kivy

我想使用kivy为旧的python项目创建gui,并且想将旧项目类和kivy小部件之间的内容分开,但是我不知道如何显示类属性中的信息而不将其更改为奇异财产。

class Person(object):
    """ Person information """
    def __init__(self, name, last_name, age):
        self.name = name
        self.last_name = last_name
        self.age = age

当我阅读Kivy的工作原理时,我认为我应该做这样的事情:

class PersonWidget(Widget):
    """ Person Kivy's widget """
    name = StringProperty("")
    last_name = StringProperty("")
    age = NumericProperty("")

然后是.kv文件:

#:kivy 1.0.9

<PersonWidget>:

    canvas:
        pos: 0, 0
        size: 100, 100

    Label:
        text: str(root.name)

忽略不完整的.kv文件,是否有其他方法可以在窗口小部件中打印某些类属性,而无需像Kivy属性那样定义它们?因为我想使用Person和PersonWidget来分隔逻辑和gui代码。

PD:我是stackoverflow的新手,很抱歉,如果出现混淆或错误的情况。

谢谢。

1 个答案:

答案 0 :(得分:0)

您必须了解有关kivy规则的更多信息...; o)
对于您的Person类,您必须创建一条kv <Person>规则

<Person>:
    canvas:
        pos: 0, 0
        size: 100, 100
    Label:
        id: person_label
        text: ""

在该规则内,您可以添加任何小部件,但是如果要从.py端访问其中的任何小部件,则应该有一个id进行标识。
要从您的班级使用它,只需要做self.ids.person_label.text = "The Person's name"