在我的Qt多线程程序中,我想实现一个基于QObject的基类,这样从它派生的每个类都可以使用它的信号和槽(例如抛出错误)。
我实施了MyQObject : public QObject{...}
。但是对于从QWidget派生的类,我无法从QWidget和MyQObject进行多重继承。
我可以通过QMetaObject :: invokeMethod(...)直接调用插槽来解决问题,但我感兴趣的是还有另一种方法可以解决这个问题。
答案 0 :(得分:0)
使用QObject进行多重继承可以遵循以下规则:
只有一个父类可以是QObject / QWidget
QObject父级必须是初始化中的第一个父级。
这是一个技巧,允许您在非qobject接口中声明类似函数的信号,然后声明它使用合成继承该接口。看看this post,它可能会有用。