我翻看相关的问题,找不到任何能解决我正在谈论的问题,所以让我来描述一下。在Qt中,如何使用Q_OBJECT插槽和具有多重继承的信号?
我有一个类,让我们说foo需要有自己的插槽和信号,但也需要从QXmlDefaultHandler继承(听起来很奇怪,但是当我尝试使用QHttp直接读取网站时遇到这种情况一个QBuffer)。
class foo: public QXmlDefaultHandler, public QObject
{
public:
foo();
~foo();
Q_OBJECT
public slots:
void bar();
}
这段代码,如果伴随着一个cpp连接栏到其他地方的信号,将不会编译。你会得到有关QObject的一些成员不是QXmlDefaultHandler成员的错误。另外,你不能移动Q_OBJECT,否则你会因为不执行某些事情而出现vtable错误(继续尝试!)。
请参阅我的答案(非常简单)修复。如果我认为你比我更好地解释它,我会接受你的投票。
编辑:对于你C++和Qt兽医,请发表一个答案,如果你能更好地解释它。我花了很多时间查看这些信息,所以如果你能比我做得更好,请帮助其他人。