如何从 QMap 中检索值作为我的枚举类型?
How do I retrieve the value as my enum type from a QMap?
我有一个 QMap
这样的:
QVariantMap dictionary;
dictionary.insert("name", KeywordType::name);
但是当我尝试检索 name
键的值作为枚举 KeywordType
类型时,即 KeywordType::name
它 return none (即零在 KeywordType
枚举中):
qDebug() << dictionary["name"].value<KeywordType>();
我该如何解决这个问题?
枚举类型注册到moc,它使用:
Q_ENUM(KeywordType)
Q_DECLARE_METATYPE(keywords::KeywordType)
和
qRegisterMetaType<KeywordType>("KeywordType");
了解输入的内容:
typedef keywords::KeywordType KeywordType;
也许你应该通过 keywords::name
获得 name
值?如果 KeywordType
是枚举,则它不是命名空间或 class.
我没有找到为什么这不适用于我的枚举,所以我决定这样做:
static_cast<KeywordType>(dictionary["name"].value<int>())
我有一个 QMap
这样的:
QVariantMap dictionary;
dictionary.insert("name", KeywordType::name);
但是当我尝试检索 name
键的值作为枚举 KeywordType
类型时,即 KeywordType::name
它 return none (即零在 KeywordType
枚举中):
qDebug() << dictionary["name"].value<KeywordType>();
我该如何解决这个问题?
枚举类型注册到moc,它使用:
Q_ENUM(KeywordType)
Q_DECLARE_METATYPE(keywords::KeywordType)
和
qRegisterMetaType<KeywordType>("KeywordType");
了解输入的内容:
typedef keywords::KeywordType KeywordType;
也许你应该通过 keywords::name
获得 name
值?如果 KeywordType
是枚举,则它不是命名空间或 class.
我没有找到为什么这不适用于我的枚举,所以我决定这样做:
static_cast<KeywordType>(dictionary["name"].value<int>())