c++ - 信号/槽基类多继承

标签 c++ qt signals signals-slots

在我的 Qt 多线程程序中,我想实现一个基于 QObject 的基类,以便从它派生的每个类都可以使用它的信号和槽(例如抛出错误)。

我实现了 MyQObject : public QObject{...}。但是对于从 QWidget 派生的类,我不能从 QWidget 和 MyQObject 多重继承。

我可以通过 QMetaObject::invokeMethod(...) 直接调用槽来解决这个问题,但我很感兴趣是否有另一种方法来解决这个问题。

最佳答案

QObject 的多重继承可以遵循这些规则:

  1. 只有一个父类可以是QObject/QWidget

  2. QObject 父对象必须是初始化中的第一个父对象。

有一个技巧允许您在非 qobject 接口(interface)中声明类似信号的函数,然后使用组合声明它继承该接口(interface)。看看this post ,它可能会有用。

关于c++ - 信号/槽基类多继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809970/

相关文章:

c - 使用C中的信号,如何在定时器结束时停止和继续程序

c++ - 使用 boost 信号编译 VS8 C++ 程序时出现问题

c++ - 如何解决两个库的两个头文件声明冲突?

c++ - 开源 C++ 项目作为 Thunderbird 的插件

c++ - 带有适用于 iOS 的 libstdc++ 的 OpenCV 2.4.3+?

c++ - 为什么下面的验证代码输入1.w时会卡在cin.ignore上,输入w.1时会进入无限循环?

xml - 如何在 Qt 中读取 XML 节点的属性?

c++ - 在 Visual Studio 2017 社区版上编译时,Qt 5.8 出现错误 C3615

C pthread : How to wake it up after some time?

c++ - 如何使用 write with stringstream?