You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kivy的Builder外部获取MDTextField控件的用户输入数据

解决方案
  • Kivy中所有通过Builder加载的KV布局里带id的控件,都可以在App类方法中通过 self.root.ids.控件id 获取控件实例
  • 按钮的点击事件在KV里通过 on_release: app.自定义方法名() 绑定,其中app指代当前运行的App类实例

修改后的可运行完整代码如下:

from kivymd.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window

Window.size=(400,600)

please_help_me="""
MDScreen:

      MDLabel:
      
            text: 'Please Enter Some Data'
            halign:'center'
            pos_hint:{'center_x':0.5,'center_y':0.55}
            
      MDTextField:
      
            id:user_input
            hint_text: 'Type Here'
            pos_hint:{'center_x':0.5,'center_y':0.44}
            size_hint_x:None
            width:300
            
      MDRaisedButton:
      
            text:'Done'
            pos_hint: {'center_x':0.5,'center_y':0.35}
            # 新增点击事件绑定,触发App类的show_data方法
            on_release: app.show_data()
"""

class HelpPleaseApp(MDApp):
      def build(self):
          main=Builder.load_string(please_help_me)
          return main
    
      # 自定义打印输入内容的方法
      def show_data(self):
          # 通过ids获取MDTextField实例,读取text属性即为用户输入内容
          user_data = self.root.ids.user_input.text
          print(f'Your Data is: {user_data}')

HelpPleaseApp().run()

和你熟悉的Tkinter逻辑对应:self.root.ids.user_input 等同于Tkinter里你定义的user_inputEntry控件实例,Kivy的输入控件没有get()方法,直接读text属性即可拿到输入内容。

内容的提问来源于stack exchange,提问作者ZARIR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:15:03