gpt4 book ai didi

c++ - 如何通过 Qt 中的几个类对象发出信号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:45 26 4
gpt4 key购买 nike

我有几个类:A 类 - 最高类,B 类和 C 类,它们在 A 类构造函数中初始化。在 B 类构造函数中初始化 B1 类,在 C 类构造函数中初始化 C1 类。 C1 对象和 B1 对象看不到对方。

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

enter image description here

最佳答案

您可以向 C 类添加一个返回 C1 的接口(interface)和一个与 B 类类似的接口(interface)。然后在创建类 C 和 B 之后,类 A 可以请求 C1 和 B1,并将 C1 的信号连接到 B1 的插槽。

或者,如果您有很多此类情况并且您绝对不想将类 C1 和 B1 公开给 A,您可以创建自己的信号机制。某种“邮局”,类可以在其中注册为接收者,类可以向其中发送消息。在这种情况下,类 B1 将注册为接收者,类 C1 将发送消息。 C1 和 B1 对彼此一无所知。邮局类会将 C1 的消息发送给 B1。这种“邮局”类也可以使用 Qt 的信号和槽来实现。

关于c++ - 如何通过 Qt 中的几个类对象发出信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17774372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com