解决方法嘛,当然很简单:参照Q_DECLARE_METATYPE的宏定义,自己把它展开,编译器就不会再犯傻了。 [cpp]view plaincopy QT_BEGIN_NAMESPACE template <> struct QMetaTypeId< QMap<QString, bool> > { enum { Defined = 1 }; static int qt_metatype_id() { static QBasicAtomicInt metatype_id = Q_BA...
Q_DECLARE_METATYPE(QMap<QString,bool>); 你就会发现编译不过,并且抓狂了。 解决方法嘛,当然很简单:参照Q_DECLARE_METATYPE的宏定义,自己把它展开,编译器就不会再犯傻了。 [cpp]view plaincopy QT_BEGIN_NAMESPACE template<> structQMetaTypeId< QMap<QString,bool> > { enum{ Defined = 1 }; staticint...
#include "mainwindow.h"#include <QVariant>#include <QDebug>#include <QColor>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent){QVariant qv1(666);qDebug()<<"qv1:"<<qv1.toInt();QVariant qv2("zgl nb");qDebug()<<"qv2:"<<qv2.toString();QMap<QString,QVariant> qmap;...
2.QList<T>, QVector<T>, QQueue<T>, QStack<T>, QSet<T> or QLinkedList<T>这些T都是自动注册的; 3.QHash<T1, T2>, QMap<T1, T2> or QPair<T1, T2> T1,和T2都是自动注册的; 4.QPointer<T>, QSharedPointer<T>, QWeakPointer<T>这3个T必须是QObject的子类; 5.枚举类型要用Q_ENUM ...
QHash < T1, T2 >, QMap< T1, T2 > or QPair< T1, T2 > 中已经注册的元类型T1 T2 QPointer< T >, QSharedPointer< T >, QWeakPointer< T > 继承自QObject的类 Q_ENUM 或 Q_FLAG注册的枚举类型 包含Q_GADGET macro的类 http://blog.csdn.net/x356982611/article/details/54292930...
typedefQMap<QString,QImage> MapStringImage; (...) qRegisterMetaType<MapStringImage>("images"); I didn’t get the error fromQObject::connect(!), but also didn’t get things working. Wasted few hours hackingQMetaTypeclass with no effect, and then more by accident than design changed"images...
QHash < T1, T2 >, QMap< T1, T2 > or QPair< T1, T2 > 中已经注册的元类型T1 T2 QPointer< T >, QSharedPointer< T >, QWeakPointer< T > 继承自QObject的类 Q_ENUM 或 Q_FLAG注册的枚举类型 包含Q_GADGET macro的类
Q_DECLARE_METATYPE 是为了让QMetaType知道我们自定义数据类型,并提供一个默认的拷贝构造函数和析构函数,QVariant如果需要使用到自定义数据类型,需要Q_DECLARE_METATYPE这个宏来定制类型。 如果要在Qt信号槽中使用自定义类型,需要注意使用qRegisterMetaType对自定义类型进行注册 ...
3.QHash<T1, T2>, QMap<T1, T2> or QPair<T1, T2> T1,和T2都是自动注册的; 4.QPointer<T>, QSharedPointer<T>, QWeakPointer<T>这3个T必须是QObject的子类; 5.枚举类型要用Q_ENUM or Q_FLAG; 6.拥有Q_GADGET宏的类。 例如:自定义结构体,connect想通过结构体参数来传递 ...
QHash < T1, T2 >, QMap< T1, T2 > or QPair< T1, T2 > 中已经注册的元类型T1 T2 QPointer< T >, QSharedPointer< T >, QWeakPointer< T > 继承自QObject的类 Q_ENUM 或 Q_FLAG注册的枚举类型 包含Q_GADGET macro的类