QVariant简单使用
QVariant可以存储各种数据类型,支持所有QMetaType::Type声明的类型,也支持自定义的数据类型,此时需要使用QDECLARE_METATYPE(自定义数据类型)注册,一般在头文件中注册。
非内置的QMetaType要在信号与槽中使用,必须使用qRegisterMetaType。
常用函数
1. 存取数据
1.1. 支持的类型,可以直接存取,可以使用to*()函数输出为指定的类型;
1.2. 不支持的类型,可以使用fromValue()或setValue()函数存储,使用value()函数获取数据。
2. 判断是否可以转换
使用canConvert函数判断是否可以转换。
示例:data.canConvert<自定义数据类型>。
3. 保存指针
示例:
QVariant var = QVariant::fromValue((void*)event); QPaintEvent* e = (QPaintEvent*)var.value<void*>();

浙公网安备 33010602011771号