私が所有している(へのポインタを所有し、初期化)Y1..10のQt:スタイルに関する信号/スロットは、
オブジェクトXが随時変化する状態を有するオブジェクトのオブジェクトXを有します。 私は子オブジェクト(Y1..10)に状態を認識させたいと思います。
通常、これは、各Y子オブジェクトから親Xへのポインタを持つことで解決できます。これにより、メソッド呼び出しによってステータスを照会できますが、YオブジェクトはオブジェクトX 、ちょうどその状態。
これが信号/スロットを実装することができる場合、私は思っていた:
Yオブジェクトは、次のような信号を定義する:Xオブジェクト
void GetStatus(TheStatus & status);
をスロットにこれを接続し、いつであろうYオブジェクトによって放出されるオブジェクトXは、Yオブジェクトがそれを取得できるように、与えられたステータス参照にステータスを書き込みます。
このようにして、Yオブジェクトに対してステータス更新を利用できるようになりますが、それを達成するためにオブジェクトXを認識する必要はありません。
あなたはどう思いますか?
:
ことと遊ぶの通知ベースクラスの良い例では、プログレスバーであるかもしれない理解するのは簡単です –
@MartinBeckettプログレスバーは 'setValue()'を持っていますが、 'updateValue()'よりも良いか悪いのか分かりません。 "set"は、GUI要素を更新する関数の軽量化の可能性がありますが、どちらの方法でも見ることができます。いずれにしても、onValueChanged()よりも優れています。これは、スロットの場合と同様にシグナルの名前に似ています。 – HostileFork
あなたがそれらを何と呼んでもそれは本当に問題ではありません。コンパイラはそれを強制することはないので、シグナル/スロットの機能を頭の中でまっすぐに保つためにいくつかの規約が必要です。 –