Qt无法使用qDebug()输出QEvent对象详细信息的解决方法

长话短说,

QDebug operator<<(QDebug, const QEvent *);

这个函数声明在qevent.h中,这个函数实现了使用QDebug对象获得QEvent对象详细信息的功能。我们为了使用QEvent类通常会#include <QEvent>,尴尬的是QEvent文件中并没有包含qevent.h文件,而是包含了qcoreevent.h文件,同样,这个文件也没有包含到qevent.h。因此,我们使用qDebug输出QEvent对象信息时匹配不到这个函数,而会匹配到下面这个函数(除了输出指针地址啥也干不了),它声明在qdebug.h中:

QDebug &QDebug::operator<<(const void * t);

所以要解决这个问题,要么手动#include <qevent.h>,要么加上QDebug operator<<(QDebug, const QEvent *)的声明。

猜你喜欢

转载自blog.csdn.net/imred/article/details/79922303