在python中使用来自textinput的值

Posted

技术标签:

【中文标题】在python中使用来自textinput的值【英文标题】:Using value from textinput in python 【发布时间】:2015-12-13 08:03:03 【问题描述】:

我想制作一个应用程序,当我按下 Print 时,它会打印在 TextInput 中输入的文本。 在网上搜索了几个小时后,我仍然无法理解如何将 TextInput 的值分配给 python 脚本中的变量。

这是 Kivy 代码:

<SimpleRoot>:
    orientation:"vertical"
    padding: root.width * .02, root.height * .02
    spacing: "10dp"
    TextInput:
        id: txt
    Button:
        text: 'Print'
        on_press: root.printTxt(txt.text)

Python 脚本:

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout

class SimpleRoot(BoxLayout): # 2
    def printTxt(text):
        print txt.text


    pass

class SimpleApp(App):  # 1  
    def build(self):
        # Return root widget 
        return SimpleRoot()

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

【问题讨论】:

现在运行时会发生什么?你有什么错误吗? 是的。当我在 TextInput 中写入内容并单击“打印”时,我得到:文件“D:/Documents/Python\simple.kv”,第 9 行,在 on_press: root.printTxt(txt.text) TypeError: printTxt()正好有 1 个参数(给定 2 个) 【参考方案1】:

尝试改变这个:

class SimpleRoot(BoxLayout): # 2
    def printTxt(text):
        print txt.text

到这里

class SimpleRoot(BoxLayout): # 2
    def printTxt(self, text):
        print text

【讨论】:

我做了,但现在它返回此错误:文件 "D:/Documents/Python\simple.kv", line 9, in on_press: root.printTxt(txt.text) File “D:/Documents/Python/textinput.py”,第 8 行,在 printTxt print txt.text NameError: global name 'txt' is not defined 看看我的新编辑,看看是否有效。我摆脱了 txt.text 并仅替换为文本

以上是关于在python中使用来自textinput的值的主要内容,如果未能解决你的问题,请参考以下文章

无法为动态创建的 react-native TextInput 保存值

TextInput 在 ScrollView React Native 中消失

React Native 不显示来自 TextInput 的 Datepicker

如何在TextInput中突出显示部分文本反应原生

Flex 3 - 来自 TextInput 的焦点输入/输出

如何从 TextInput 中获取值