无论如何要从元类型 id 创建 QVariant 吗?

例如 :

int id = qRegisterMetaType<MyStruct>();
QVariant myVariant = QVariant::fromMetaType(id);

所以 myVariant 现在是一个 QVariant,其中包含一个默认构造的“MyStruct”值。

我没有找到用 QVariant API 来做这件事,我错过了什么,或者有什么技巧吗?

谢谢

最佳答案

QVariant constructors 之一是这样做的:

QVariant::QVariant(int typeId, const void *copy)

请注意, copy 可以是 nullptr 。所以,你的代码是:
auto id = qRegisterMetaType<MyStruct>();
QVariant myVariant{id, nullptr};

当然,如果您有可用的类型本身,那么使用元类型 id 没有意义,您应该使用 fromValue

关于c++ - 从元类型 id 创建 QVariant,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38021104/

10-13 09:41