2

I have a few classes: Class A - highest class, Class B and Class C which are initialized in Class A constructor. In Class B constructor is initialized Class B1 and in Class C constructor is initialized Class C1. C1 object and B1 object does not see each other.

Every time I need to send signal from C1 class to B1 class, I connecting C1 and C, C and B, finally, B and B1. So every time my programm emitting a signal in C1 class object, it is sending to C class object then to B and then to B1. (On image) Is it a right Qt Way? Or there is a better way to do that?

enter image description here

4

1 に答える 1

2

クラス C に、C1 を返すインターフェイスと、クラス B への同様のインターフェイスを追加することもできます。次に、クラス C と B を作成した後、クラス A は C1 と B1 に問い合わせて、C1 の信号を B1 のスロットに接続できます。

または、この種のケースが多数あり、クラス C1 と B1 を A に公開したくない場合は、独自のシグナリング メカニズムを作成できます。クラスが受信者として登録でき、クラスがメッセージを送信できるある種の「郵便局」。この場合、クラス B1 が受信者として登録され、クラス C1 がメッセージを送信します。C1 と B1 はお互いについて何も知りません。郵便局クラスは、C1 のメッセージを B1 に送信します。この種の「郵便局」クラスは、Qt のシグナルとスロットを使用して実装することもできます。

于 2013-07-21T16:47:59.613 に答える