将文本从文本输入传递到 Kivy 中的标签

Posted

技术标签:

【中文标题】将文本从文本输入传递到 Kivy 中的标签【英文标题】:Passing text from textinput to label in Kivy 【发布时间】:2013-05-09 03:38:08 【问题描述】:

我试图让 textinput 小部件将文本传递给回调函数,该回调函数在 printbutton 调用时用文本制作标签,当您考虑它时应该相当简单。但我有个习惯,只见树木不见森林。 Anyhoo,如果有人能解决这个问题,那就写代码吧:P

import kivy
kivy.require('1.5.1')
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput

class kivyentrywidget(GridLayout):

    def __init__(self, **kwargs):
        super(kivyentrywidget, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='What do you want to print?'))
        self.text_input = TextInput(multiline=False)
        self.add_widget(self.text_input)
        self.printbutton = Button(text='Print')
        self.printbutton.bind(on_press=callback)
        self.add_widget(self.printbutton)

    def callback(self):
        return Label(text=self.text_input.text)



class Firstapp(App):
    def build(self):
        return kivyentrywidget()

if __name__ == '__main__':
    Firstapp().run()

【问题讨论】:

【参考方案1】:
def callback(self,evt=None): #not sure if kivy sends event info so added optional arg just in case
    return self.add_widget(Label(text=self.text_input.text))

也许......对kivy不太熟悉,但我认为可以做到......

还有

self.printbutton.bind(on_press=self.callback)

应该解决你的其他问题

【讨论】:

仍然出现全局名称回调未定义的错误,抱歉,虽然响应很快。 我应该在回调函数或 init 哪里添加这个? 看,现在它说回调接受一个输入,但给出了两个,不确定第二个来自哪里:/ 我前段时间添加到回调函数中:P 不,等一下,我没有添加 evt=None,谜团解开,现在就爱你!

以上是关于将文本从文本输入传递到 Kivy 中的标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在 kivy python 中的标签、文本输入和其他小部件中添加标题

Kivy,Python3.5 - 将用户文本输入绑定到类中的方法

如何将文本输入值添加到kivy python中字典中的值?

在 Kivy 应用程序中获取文本输入值

文本输入突然停止在 Kivy 应用程序中工作

从输入中计算多个结果并在标签 KIVY 中替换