我想将
这个是从哪里来的?我在QVariant的枚举类型中找不到它,也没有值1030。
这里出了什么问题?还是应该使用
Qt 5.13.1,clang 8.0.1,Linux 64位。
QList<int>
存储在QVariant
中,然后进行类型检查以确定存储在QVariant
中的值的确切类型(用于序列化)。
QVariant::type()
对标量类型(如int
或QString
)有效,但对于QList<int>
则出现了以下情况:QList<int> list{1,2,3};
QVariant v = QVariant::fromValue<QList<int>>(list);
qDebug() << v.type() << "|" << v.typeName() << "|" << v.userType() << "|" << QVariant::typeToName(v.type());
生成:
QVariant::QWidget* | QList<int> | 1030 | QWidget*
这个是从哪里来的?我在QVariant的枚举类型中找不到它,也没有值1030。
Q_DECLARE_METATYPE(QList<int>);
没有效果。这里出了什么问题?还是应该使用
typeName()
,因为它返回正确的类型名称而不是type()
?Qt 5.13.1,clang 8.0.1,Linux 64位。
QMetaType
(1024是"用户"范围的起点)。这也是肯定会引起困惑的另一点。 - Maxim Paperno