2013-07-21 32 views
2

我有几个类:A类 - 最高类,B类和C类在A类构造函数中初始化。在B类构造函数中初始化类B1,在C类构造函数中初始化C1类。 C1对象和B1对象不会看到对方。如何通过Qt中的几个类对象发射信号?

每次我需要从C1级发送信号到B1级,我连接C1和C,C和B,最后是B和B1。所以每当我的程序在C1类对象中发出一个信号,它就会发送给C类对象,然后发送给B,然后发送给B1。 (上图)这是一个正确的Qt方式?或者有更好的方法来做到这一点?

enter image description here

回答

2

你可以添加到C类返回C1和相似的界面B类的接口了。然后,在创建C类和B类后,A类可以询问C1和B1,并将C1的信号连接到B1的插槽。或者,如果你有很多这样的情况,并且你肯定不想将类C1和B1暴露给A,你可以创建自己的信号机制。某种类型的“邮局”,类可以注册为接收者,并且类可以发送消息。在这种情况下,B1类将注册为接收方,C1类将发送消息。 C1和B1对彼此一无所知。邮局班将发送C1的消息给B1。这种“邮局”类也可以使用Qt的信号和插槽来实现。

+0

感谢您的“邮局”的想法。 –