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

Kivy开发:如何读取登录界面TextInput控件输入的用户名与密码

Kivy登录页读取输入内容修复方案

你代码存在两个核心问题导致无法读取输入内容:

  • 语法错误:全局函数readUserInfo中MyGrid..name.text多写了一个.,且name是MyGrid的实例属性,不能直接通过类名MyGrid访问
  • 逻辑错误:全局回调函数无法直接拿到MyGrid的实例对象,自然无法读取实例下绑定的输入框内容

修复后完整代码

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.core.window import Window
# 导入所有kivy依赖

def callback(instance):
    print('The button is pressed')

class MyGrid(GridLayout):
    def __init__(self, **kwargs):
        Window.size = (300, 120)
        super(MyGrid, self).__init__(**kwargs)
        self.cols = 2
        self.row_force_default = True
        self.row_default_height = 80

        self.add_widget(Label(text="Username: ", size_hint_x=None, width=300))
        self.name = TextInput(multiline=False, size_hint_x=None, width=300, font_size = 50)
        self.add_widget(self.name)

        self.add_widget(Label(text="Password: ", size_hint_x=None, width=300))
        self.lastName = TextInput(multiline=False, password = True, size_hint_x=None, width=300, font_size = 50)
        self.add_widget(self.lastName)

        self.add_widget(Button(text='Register', on_press=callback, size_hint_x=None, width=300, background_color =(99,180,207, 0.8)))
        self.add_widget(Button(text='Login', on_press=self.readUserInfo , size_hint_x=None, width=300))
    
    def readUserInfo(self, instance):
        print("用户名:", self.name.text)
        print("密码:", self.lastName.text)

class MyApp(App):
    def build(self):
        return MyGrid()

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

修改说明

  1. 将读取用户信息的逻辑从全局函数改为MyGrid的实例方法,直接通过self即可访问当前实例下的所有输入框对象
  2. 修正了row_force_default=True后多余的逗号语法问题
  3. 点击登录按钮后,控制台会直接打印你输入的用户名和密码,可根据业务需求替换为校验逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:04