Python Kivy错误:“Kivy.properties.ObjectProperty”对象没有属性文本

2024-09-25 00:29:43 发布

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

我刚刚开始学习Python Kivy,希望从TextInput输出文本 控制台中的错误:AttributeError:'kivy.properties.ObjectProperty'对象没有属性文本

我的Python代码:

class SearchField(AnchorLayout):
    search_field = ObjectProperty(None)
    result = search_field.text
class MyApp(App):
    def build(self):
        return SearchField()
if __name__ == "__main__":
    MyApp().run()

My.kv代码:

<SearchField>
    search_field: search_field
    anchor_x: "center"
    anchor_y: 'top'
    padding: (0, 20)
    BoxLayout:
        size_hint: (None, None)
        size: (600, 30)
        TextInput:
            id: search_field
            multiline: False
        Button:
            size_hint: (None, None)
            size: (50, 30)
            text: "Search"
            on_release: search_result.text = root.result
    Label:
         id: search_result
         text: ""
         font_size: 30

Tags: 代码text文本nonefieldsearchsizetextinput
1条回答
网友
1楼 · 发布于 2024-09-25 00:29:43

该程序中出现了几个错误。 1-在search_字段变量声明为ObjectProperty后,直接将text属性应用于该变量。因此,它是一个ObjectProperty实例,没有属性text。 2-程序缩进做得不好。 3-在.kv文件中没有很好地声明属性

虽然我还没有完全理解该计划的目的,但这里有一个安全版本:

from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
from kivy.properties import ObjectProperty


class SearchField(AnchorLayout):
    search_field = ObjectProperty(None)
    result = ""

    def btn(self):
        self.result = self.search_field.text
        print(self.result)


class TestApp(App):
    def build(self):
        return SearchField()


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

这是kv文件:

<SearchField>
    search_field: search_field
    anchor_x: "center"
    anchor_y: 'top'
    padding: (0, 20)
    search_result: search_result
    search_field: search_field
    BoxLayout:
        size_hint: (None, None)
        size: (600, 30)
        TextInput:
            id: search_field
            multiline: False
        Button:
            size_hint: (None, None)
            size: (50, 30)
            text: "Search"
            on_release: root.btn()
    Label:
        id: search_result
        text: ""
        font_size: 30

相关问题 更多 >