Python 文本输入值不更新

Python 文本输入值不更新,python,kivy,Python,Kivy,为什么文本输入值不使用此代码更新?当我点击按钮时,我需要捕获用户输入的值,但不管看起来如何,我只能获取默认文本 这是python 3.4.3上的一个可运行示例: # -*- coding: utf-8 -*- import kivy kivy.require("1.9.1") from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.uix.button import Button from

为什么文本输入值不使用此代码更新?当我点击按钮时,我需要捕获用户输入的值,但不管看起来如何,我只能获取默认文本

这是python 3.4.3上的一个可运行示例:

# -*- coding: utf-8 -*-
import kivy
kivy.require("1.9.1")

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput 
from functools import partial 

class TestApp(App):
    def check(self, texto, *args):
        print(texto)

    def build(self):
        layout = FloatLayout()
        txtinput = TextInput(background_color=(1,1,1,1),
                                   font_size=16,
                                   size_hint=(None, None),
                                   size=(200, 35),
                                   pos_hint={"center_x":0.5, "bottom":0.8},
                                   multiline=False,
                                   text="write here...",
                                   use_bubble=True)
        boton = Button(size_hint=(None, None),
                              size=(150, 50),
                              pos_hint={"left":1, "bottom":1},
                              text="Check",
                              on_release=partial(self.check, txtinput.text))
        layout.add_widget(txtinput)
        layout.add_widget(boton)
        return layout

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

我想要一个纯Python的答案,我真的不喜欢使用kv文件。

在创建
txtinput
后,将
txtinput
方法绑定到您的
txtinput

txtinput = TextInput(background_color=(1,1,1,1), ...
txtinput.bind(text=self.check)
输入值在所提供的代码段中变得可用

当前的check方法是实例方法,我想它总是接受
App
的实例作为第一个属性,txtinput作为第二个属性,input text作为第三个属性

要访问
检查中的文本,方法签名应更新为该签名:

def check(self, txt_input, texto, *args):
    print(texto)

不是真的,当我点击按钮时,它应该打印“这不起作用”,但当我在TXTIPUT上键入时,它会打印一个对象。屏幕截图:@Saelyth ohh,这与参数传递有关,请参阅更新的答案。此外,我已将
txtinput.bind(text=check)
更新为
txtinput.bind(text=self.check)
现在它可以工作了,尽管我不知道如何工作。我会做一些测试来找出答案。谢谢:欢迎您:)您可以看看这个问题来扩展python知识: