无论如何都要从元类型ID创建一个QVariant吗?
例如:
int id = qRegisterMetaType<MyStruct>();
QVariant myVariant = QVariant::fromMetaType(id);
所以myVariant现在是一个包含默认构造值“MyStruct”的QVariant。
我没有找到使用QVariant API执行此操作,我是否遗漏了某些内容,或者是否有任何技巧?
由于
答案 0 :(得分:4)
其中一个QVariant
constructors就是这样做的:
QVariant::QVariant(int typeId, const void *copy)
请注意,copy
可以是nullptr
。所以,你的代码将是:
auto id = qRegisterMetaType<MyStruct>();
QVariant myVariant{id, nullptr};
当然,如果您有类型本身可用,那么使用元类型ID是没有意义的,您应该使用fromValue
。
答案 1 :(得分:1)