3

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'
    #?
4

2 に答える 2

4

ラベルをコールバックに渡す必要があります。これを行うための良い方法は、部分関数を使用することです。

from functools import partial

のコールバック署名を変更する

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

次に、このようにコールバックをバインドします

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

それはそれをする必要があります。

于 2012-09-09T21:58:24.533 に答える
1

また、コールバック関数がインデントされ、ビルド関数の直後にあることを確認してください。それ以外の場合、コールバック関数はbindステートメントで認識されます。

于 2014-03-25T12:46:47.450 に答える