2

我有几个类:A 类 - 最高类、B 类和 C 类,它们在 A 类构造函数中初始化。在 B 类中,构造函数被初始化为 B1 类,在 C 类中,构造函数被初始化为 C1 类。C1 对象和 B1 对象互不相见。

每次我需要从 C1 类向 B1 类发送信号时,我连接 C1 和 C、C 和 B,最后连接 B 和 B1。因此,每次我的程序在 C1 类对象中发出信号时,它都会发送到 C 类对象,然后发送到 B,然后再发送到 B1。(在图像上)它是正确的 Qt 方式吗?或者有更好的方法来做到这一点?

在此处输入图像描述

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 回答