【问题标题】:How to add a gui to my python project using kivy?如何使用 kivy 将 gui 添加到我的 python 项目中?
【发布时间】:2019-01-21 15:09:38
【问题描述】:

我想使用 kivy 为旧的 python 项目创建一个 gui,并且我想将旧项目类和 kivy 小部件之间的东西分开,但我不知道如何在不将其更改为的情况下显示来自类属性的信息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 的新手,如果有什么令人困惑或错误的地方,请见谅。

谢谢。

【问题讨论】:

    标签: python user-interface kivy


    【解决方案1】:

    你必须了解更多关于 kivy 的规则... ;o)
    对于您的 Person 类,您必须创建一个 kv &lt;Person&gt; 规则

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

    在该规则中,您可以添加任何小部件,但如果您想从 .py 端访问它们中的任何一个,它应该有一个 id 来识别它。
    要在课堂上使用它,您只需 self.ids.person_label.text = "The Person's name"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 2014-03-07
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多