【问题标题】:Kivy - editing label when button clickedKivy - 单击按钮时编辑标签
【发布时间】:2012-09-02 13:56:00
【问题描述】:

我希望 button1 在单击时编辑标签“etykietka”,但我不知道如何。你有什么想法吗?

class Zastepstwa (App):

def build(self):
    lista=WebOps().getList()
    layout = BoxLayout(orientation='vertical')
    etykietka = Label(text='aa', font_size=10)
    button1 = Button(text='aa')
    button1.bind(callback)
    layout.add_widget(etykietka)
    layout.add_widget(button)
    return layout

def callback (instance):
    newLabelText='kkk'
    #?

【问题讨论】:

    标签: python button refresh kivy


    【解决方案1】:

    你需要将你的标签传递给回调,一个很好的方法是使用部分函数

    from functools import partial
    

    更改回调签名

    def callback(label, instance, *args):
        label.text='kkk'
    

    然后像这样绑定回调

    button1.bind(on_press=partial(callback, etykieta))
    

    应该这样做。

    【讨论】:

    • 好吧,我在同一个类中有回调方法,所以我这样写:“button1.bind(on_press=partial(self.callback, etykieta))”,(还添加了“self” arg 回调),python 给出 mi 错误。为什么?
    【解决方案2】:

    另外,请确保回调函数缩进并直接位于构建函数之后。否则回调函数将在绑定语句中被识别。

    【讨论】:

    • 很好,遇到这种问题我不会哭的。 Kip 意识 :-)
    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 2013-03-03
    • 2020-09-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多