我有一个绑定到StringProperty()的kivy标签。我正在尝试在Python中获取字符串。

class Screen1(Screen):
    food_label = StringProperty()

    def print_label(self):
        print(Screen1.food_label)


它返回以下内容:
<StringProperty name=food_label>

我在def中使用以下语句在前一个屏幕上设置了属性:

self.manager.get_screen('screen_1').food_label = food


其中“食物”是String。在屏幕上,标签文本正确显示。

如何打印StringProperty()中包含的实际字符串。

最佳答案

Screen1.food_label不起作用。假设kivy属性是在类的顶部声明的,它们看起来像Python静态变量,但它们实际上是对象属性。如果你愿意的话

class Screen1(Screen):
    food_label = 'Hello world'

    def print_label(self):
        print(Screen1.food_label)


这应该可行,但是由于这些是Kivy Properties,因此您必须

class Screen1(Screen):
    food_label = StringProperty()

    def print_label(self):
        print(self.food_label)

关于python - 如何在Python中从StringProperty中获取字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48016090/

10-10 17:10