Python 文本输入值不更新
为什么文本输入值不使用此代码更新?当我点击按钮时,我需要捕获用户输入的值,但不管看起来如何,我只能获取默认文本 这是python 3.4.3上的一个可运行示例: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
# -*- 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知识: