【问题标题】:Variable not updated with TextInput content after content change in KivyKivy 中的内容更改后,变量未使用 TextInput 内容更新
【发布时间】:2016-01-14 21:18:28
【问题描述】:

我在 Kivy 中创建了一个编辑窗口,允许显示字典中的内容并更改相关项目(文本)的内容。 首先,所有 TextInput 字段都使用存储在字典中的第一个处理步骤的数据进行初始化。有一个按钮用于触发和显示下一步。但同时用户可能会更改特定 TextInput 字段的内容。更改后,应将新的 TextInput 内容分配给局部变量(在下面的示例中以打印形式表示)。简而言之,我有以下代码。不幸的是,变量没有更新。怎么了?

python部分:

from kivy.properties import StringProperty

class pezHome(Widget):
    title = StringProperty()

    def init_pez(self):
        self.title = "Enter your title"

    def update(self):
        new_title = self.title
        print "New title is: ", new_title

class pezApp(App):
    def build(self):
        homeWin = pezHome()
        homeWin.init_editor()
        return homeWin

pezApp().run()

相关kv文件:

<pezHome>:
    TextInput:
            text: root.title
            on_text: root.title
            readonly: False

【问题讨论】:

标签: python kivy textinput


【解决方案1】:

您没有调用您的 update 方法...这是需要的更改

<pezHome>:
    TextInput:
        text: root.title
        on_text: root.update() # was root.title ...
        readonly: False

【讨论】:

  • 亲爱的 Yoav,我很抱歉,但我在我的例子中不是很清楚。我已经更新了代码部分,因为我的代码中有一个初始化周期。问题是在 pezHome 表单中有一个名为 title 的字段。最初,此字段包含文本“输入您的职位”。 (表单由几个字段组成......)。现在用户可以更改字段的内容。完成后单击保存按钮(调用更新函数),但这些字段的新内容在此上下文中不可用。打印仍然打印“输入您的标题”。那么我在这里做错了什么?
  • Aaaaa 我遇到了同样的问题,比尔。你找到答案了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多