无法在 KIVY Python 中打印取自 kivy.uix.textinput.TextInput 的文本

Posted

技术标签:

【中文标题】无法在 KIVY Python 中打印取自 kivy.uix.textinput.TextInput 的文本【英文标题】:Not able to print the text taken from kivy.uix.textinput.TextInput in KIVY Python 【发布时间】:2021-07-17 09:29:22 【问题描述】:

我想做的是从 kivy.uix.textinput.TextInput() 获取输入并将其显示在屏幕上。

我是 gui 编程的新手,我认为这是一项简单的任务。

import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput


class MyWindowApp(App):

    def __init__(self):
        super(MyWindowApp, self).__init__()
        
        self.lbl = Label(text='Read Me!')
        
        self.inp = TextInput(multiline=False,
                             size_hint =(1, 0.05),
                             pos_hint = "x":0, "y":0.05)

    def build(self):
        self.inp.bind(on_text_validate=self.on_enter)
        #self.bt1.bind(on_press=self.clk)
        layout = FloatLayout()
        layout.orientation = 'vertical'
        
        layout.add_widget(self.lbl)
        layout.add_widget(self.inp)

        return layout
    
    def on_enter(self,value):
        print(value)
    def clk(self, obj):
        print ('input')
        x = input()
        self.lbl.text = x


window = MyWindowApp()
window.run()

当我运行代码时,我会得到常规的输出输出。

当我在文本框中输入“hello world”时,输出如下:

<kivy.uix.textinput.TextInput object at 0x03F5AE30>

我没有得到我输入的内容。

请建议我该怎么做

【问题讨论】:

【参考方案1】:

修改如下...

def on_enter(self, value):
    print(value.text)

【讨论】:

以上是关于无法在 KIVY Python 中打印取自 kivy.uix.textinput.TextInput 的文本的主要内容,如果未能解决你的问题,请参考以下文章

使用 buildozer 在 android 上部署 kivy 应用程序时出错

将 Kivy 按钮链接到函数

Kivy Python 启动 GUI 后无法执行任何操作

KIVY python:在python代码中使按钮可点击

如何打印在.kv(kivy)中输入的TextInput值,以打印在.py文件中?

使用 Kivy 的时钟从 kivy 文件 (.kv) 访问不同类的 id/widget?