将文本从文本输入传递到 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 中的标签、文本输入和其他小部件中添加标题