我有一个类 Pkg,我需要以 QVariant 的形式使用它。
在我的 Pkg.h 结束时,我有:
Q_DECLARE_METATYPE(Pkg)
这不会产生编译错误,但在我的 main.cpp 中我必须这样做:
qRegisterMetaType<Pkg>("Pkg");
这也不会产生错误,但是当我尝试创建 QVariant(Pkg) 时,会出现很多错误,例如:
In member function 'void MainWindow::FillPackagesList()':
mainWin.cpp:233: error: 'qRegisterMetaType' isnot a member of 'QMetaType' mainWin.cpp:234: error: no matching function for call to QVariant::QVariant(Pkg&)'
/usr/lib/qt/include/QtCore/qvariant.h:208: note: QVariant::QVariant(Qt::GlobalColor)
/usr/lib/qt/include/QtCore/qvariant.h:206: note: QVariant::QVariant(const QRegExp&)
/usr/lib/qt/include/QtCore/qvariant.h:204: note: QVariant::QVariant(const QLocale&)
/usr/lib/qt/include/QtCore/qvariant.h:203: note: QVariant::QVariant(const QUrl&)
/usr/lib/qt/include/QtCore/qvariant.h:201: note: QVariant::QVariant(const QRectF&)
/usr/lib/qt/include/QtCore/qvariant.h:200: note: QVariant::QVariant(const QRect&)
和错误再次错误......