【问题标题】:Passing text from textinput to label in Kivy将文本从文本输入传递到 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()

【问题讨论】:

    标签: python label textinput kivy


    【解决方案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,谜团解开,现在就爱你!
    猜你喜欢
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2017-11-24
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多