3
私はpygtkを使用しています。私はpygtkのconnect()とconnect_object()の違いは何も分かりません。誰かがこれについて私を明確にすることはできますか?pygtkのconnect()とconnect_object()の違い
ありがとうございました。
私はpygtkを使用しています。私はpygtkのconnect()とconnect_object()の違いは何も分かりません。誰かがこれについて私を明確にすることはできますか?pygtkのconnect()とconnect_object()の違い
ありがとうございました。
説明したように、here,connect_object
は、デフォルトでコールバックメソッドに渡されたオブジェクト(シグナルを発行したオブジェクト)を置き換えるために使用されます。例えば
、
>>> label = gtk.Label()
>>> button = gtk.Button()
>>> def callback(obj):
... print obj
>>> button.connect('clicked', callback) # button will be passed by default
>>> button.emit('clicked')
<gtk.Button object at 0x27cd870 (GtkButton at 0x22c6190)>
>>> button.disconnect_by_func(callback)
>>> button.connect_object('clicked', callback, label) # label will be passed instead of button
>>> button.emit('clicked')
<gtk.Label object at 0x27cd9b0 (GtkLabel at 0x22b64f0)>
注:通常のコールバックメソッドでは、あなたがシグナル(デフォルトで渡されたものを)放出されたオブジェクトに興味があるだろう、そうconnect_object
が頻繁に使用されていません。
編集:
connect_object()
のみシグナルハンドラとして使用されるように単一の引数(自己を)取るPyGTKのウィジェットのメソッドを許可します。これに加えて、あなたはhere以下の説明を見つけることができます。
私は、connect_object()を使ってシグナルハンドラとして使用するPyGTKウィジェットのメソッドが単一の引数(self)だけを取る方法を教えていただけますか? – nik7
申し訳ありませんが、前の例は 'button.connect_object( 'clicked'、gtk.Label.show、label)'のようになります。 – jcollado
、ありがとう、たくさん – nik7