2

Glade:シグナルハンドラーに複数の引数を渡すにはどうすればよいですか?

4

3 に答える 3

2

グレードでできることは非常に限られています。0 個または 1 個のオブジェクトをユーザーデータとしてシグナル ハンドラーに渡すことができます。オブジェクトは、glade プロジェクトにも存在するウィジェット (または他のオブジェクト) でなければなりません。

一方、コードからの信号を接続すると、さまざまなものを含む構造体を自由に渡すことができます。

また、自分でシグナルを作成する場合は、マーシャラーを使用して必要な数の引数 (シグナル ハンドラー プロトタイプ用) を作成できますが、ユーザーデータ引数は 1 つだけです。したがって、これにより、シグナルを接続してから呼び出すだけで、さらに引数を指定することはできません。

于 2011-11-09T03:56:25.230 に答える
1

ここから:

http://library.gnome.org/devel/gtkmm-tutorial/2.21/sec-connecting-signal-handlers.html.en ..。

ボタンのクリックされたシグナルは、引数なしでメソッドを呼び出すことを期待していることをお伝えしました。すべてのシグナルには、このような要件があります。2つの引数を持つ関数を、何も期待しないシグナルにフックすることはできません(もちろん、sigc :: bind()などのアダプターを使用しない限り)。したがって、特定のシグナルに接続することが期待されるシグナルハンドラーのタイプを知ることが重要です。

于 2010-11-04T20:39:04.827 に答える