如何使用kivy向python项目添加gui?

2024-04-25 08:08:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用kivy为一个旧的python项目创建一个gui,并且我想在旧的项目类和kivy小部件之间保持分离,但是我不知道如何在不将class属性更改为kivy属性的情况下显示class属性中的信息。你知道吗

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代码。你知道吗

我是stackoverflow的新员工,如果有什么不对劲的地方,请原谅。你知道吗

谢谢。你知道吗


Tags: 项目nameselfage属性部件guiclass
1条回答
网友
1楼 · 发布于 2024-04-25 08:08:42

你必须了解更多关于基维的规则。。。;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"

相关问题 更多 >

    热门问题