我查看了相关的问题,找不到任何能解决我所说的内容的内容,所以让我来描述一下.
我有一个类,让我们说foo需要有自己的插槽和信号,但也需要从QXmlDefaultHandler继承(听起来很奇怪,但我在尝试使用QHttp将网站直接读入QBuffer时遇到了这种情况).
class foo: public QXmlDefaultHandler, public QObject
{
public:
foo();
~foo();
Q_OBJECT
public slots:
void bar();
}
Run Code Online (Sandbox Code Playgroud)
这个代码,如果附带一个cpp连接条到其他地方的信号,将无法编译.您将获得有关QObject的某些成员不是QXmlDefaultHandler成员的错误.另外,你不能移动Q_OBJECT,否则你会因为没有实现某些东西而得到vtable错误(继续!试试吧!).
请看(非常简单)修复我的答案.如果我认为你比我更好地解释它,我会接受投票给你作为公认的答案.
编辑:对于你c ++和Qt兽医,如果你能更好地解释它,请发一个答案.我花了很多时间查看这些信息,所以如果你能做得比我好,请帮助别人.
Pau*_*xon 12
moc的文档指出,在多重继承的情况下,提供QObject的类应首先出现
如果使用多重继承,则moc假定第一个继承的类是QObject的子类.另外,请确保只有第一个继承的类是QObject.
Run Code Online (Sandbox Code Playgroud)// correct class SomeClass : public QObject, public OtherClass { ... };不支持使用QObject进行虚拟继承.
| 归档时间: |
|
| 查看次数: |
5660 次 |
| 最近记录: |