1

GObject リファレンス マニュアルでは、関数について次のことを示します。

   g_signal_connect(instance, detailed_signal, c_handler, data)

"signal-name::detail"の形式のdetailed_signal文字列パラメーターが必要です。私の最初の理解では、渡す信号の詳細が事前に定義されているということです。その場合、これらのリストはどこにありますか? そうでない場合、それは正確には何を意味するのでしょうか。

4

2 に答える 2

1

信号名の::detail一部はオプションです。シグナルが詳細パラメーターを取る場合は、シグナルのドキュメントにその旨が記載されています。それ以外の場合は、無視できます。

実際に詳細パラメーターを使用することを認識している唯一の信号は、のnotify信号ですGObject。詳細のない信号は、オブジェクトのプロパティが変更さnotifyれるたびに発生するため、ほとんど役に立ちません。しかし、シグナルに接続すると、オブジェクトのプロパティが変更notify::visibleされるたびに発火します。visible

于 2013-02-02T11:05:55.003 に答える
0

最近状況が大きく変わっていない限り、信号の完全な公式リストはありません。事前定義されたシグナルは、使用しているテクノロジーに完全に依存します。

できることは、作業している GObject インスタンス クラスのオンライン ドキュメントを参照することです。たとえば、GtkButtonを使用している場合、オンラインで調べると、6 つのシグナル (アクティブ化、クリック、エンター、リーブ、プレス、リリース) を発していることがわかります。GtkButton は GtkContainer から派生しており、GtkButton によって潜在的に放出される可能性のあるいくつかの文書化されたシグナルも放出します。また、GtkContainer は GtkWidget から派生したもので、GtkButton によって発行される可能性がある多くの文書化されたシグナルを発行します。

オブジェクトが期待する種類の信号を発していないことがわかった場合は、そのオブジェクトのソース コードを調べることもできます。

于 2013-02-02T06:44:07.987 に答える