-1

Qt シグナルに関していくつかの紛らわしい質問があります。

(1) A が B の親であると仮定します。B は信号を発します。信号はAに行きますか?私の質問を説明するためにいくつかのコードを使用してください。

connect(B, SIGNAL(B_signal()), C, SLOT(C_slot())); 
connect(A, SIGNAL(B_signal()), C, SLOT(C_slot()));

2行目は有効ですか?

(2) A が B から派生した場合、A は B の信号を持っていますか?

ありがとう。

4

1 に答える 1

2

これは主題の私の理解です:

(1) いいえ、2 行目は無効です。親子関係は、オブジェクトの階層を定義するために使用されます。これにより、オブジェクトのすべての子/オブジェクトの親を取得できます。これにより、階層ツリーのブランチでいくつかの操作を自動的に実行できます。たとえば、オブジェクトが存在するときにオブジェクトのすべての子を削除します。削除されるなど。ただし、シグナルとスロットはそれぞれの特定のオブジェクトに属します。シグナルが発行されると、オブジェクトが存在するスレッドのイベント ループによって処理されます。

(2) はい、その場合、A は B のすべてのシグナル、スロット、メソッド、およびメンバー変数を持ちます。継承の場合、B は A の一部であると考えることができます。

于 2013-01-09T21:44:01.277 に答える