0

我有一个QMap这样的:

QVariantMap dictionary;
dictionary.insert("name", KeywordType::name);

但是当我尝试将name键的值检索为枚举KeywordType类型时,KeywordType::name它返回 none(KeywordType枚举中为零):

  qDebug() << dictionary["name"].value<KeywordType>();

我该如何解决?

枚举类型已注册到 moc,它使用:

Q_ENUM(KeywordType)
Q_DECLARE_METATYPE(keywords::KeywordType)

 qRegisterMetaType<KeywordType>("KeywordType");

要知道键入的内容:

typedef keywords::KeywordType KeywordType;
4

2 回答 2

0

也许你应该得到name价值keywords::name?如果KeywordType是枚举,则它不是命名空间或类。

于 2015-10-19T10:23:55.017 回答
0

我没有找到为什么这不适用于我的枚举,所以我决定这样做:

static_cast<KeywordType>(dictionary["name"].value<int>())
于 2015-10-21T19:45:17.427 回答