为了账号安全,请及时绑定邮箱和手机立即绑定

在 Kivy 中使用按钮释放清除 inputText

在 Kivy 中使用按钮释放清除 inputText

慕勒3428872 2021-06-27 12:00:15
让我们想象一下我们有一个表单,这个人在输入上写了一些东西但需要清除它们,我将如何在 Kivy 中做到这一点?我试过这个,但没有用:主要.py:class CreateUra(GridLayout):    def clear_inputs(self, *args):            for item in args:                item = ''class UraApp(App):    def build(self):        return CreateUra()if __name__ == "__main__":    UraApp().run()乌拉.kv:<CreateUra>:    cols: 1    padding: 10    spacing: 10    row_force_default: True    row_default_height: '32dp'      BoxLayout:            Label:                 text: 'Contexto:'                TextInput:                 hint_text: "Contexto da ura"                focus: True                multiline: False                cursor_color: (0, 0, 0, 0.8)                id: context_input        BoxLayout:            Label:                 text: 'Nome da ura:'                TextInput:                 hint_text: "Nome do arquivo da ura"                multiline: False                cursor_color: (0, 0, 0, 0.8)                id: ura_file_name        Button:            text: 'Create Ura'            id: bt_create            on_press: root.uraConfig()            on_release: root.clear_inputs(context_input.text, ura_file_name.text)*忽略 on_press 上的 uraConfig我试过这种方式,它奏效了:Button:    text: 'Create Ura'    id: bt_create    on_press: root.uraConfig()    on_release: context_input.text = ''我对 kivy 和 Python 很陌生,所以我不确定这是否是清除文本的最佳方式,但我做错了什么?或者,如果你们能以最好的方式来做这件事。
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您的情况的问题是传递文本,但不是文本属性,而是文本的副本,因此即使将其设置为空也不会反映在文本输入中。您必须将 textinput 作为列表传递,迭代并使用空字符串设置属性:


*.kv


Button:

    text: 'Create Ura'

    id: bt_create

    on_press: root.uraConfig()

    on_release: root.clear_inputs([context_input, ura_file_name]) # <-- add brackets

*.py


class CreateUra(GridLayout):

    def clear_inputs(self, text_inputs):

        for text_input in text_inputs:

            text_input.text = ""


查看完整回答
反对 回复 2021-07-06
  • 1 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信