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