c++ - 如何定义具有异构值类型的 QHash?

标签 c++ qt qhash

我需要一个 QHash 容器,它采用 quint8 键,但采用异构类型作为值,所有这些都将是 Qt 容器或类。作为示例,我可能想要插入 QDateQTime 对象,甚至 quint8 作为值。

如何定义这样的类型,以便我可以在其他类中使用它并在运行时适当填充?我希望能够将其作为全局类型访问。可能吗?

注意问题已被编辑以更好地反射(reflect)OP的意图。编辑之前写下的答案适合原始问题。

最佳答案

QVariant 是一种可以存储在运行时确定的各种值类型中的任何一种类型,因此 QHash<quint8, QVariant>就是你想要的。

另请参阅https://en.wikipedia.org/wiki/Tagged_union对于一般模式。

关于c++ - 如何定义具有异构值类型的 QHash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25373936/

相关文章:

qt - qvariant 作为 qhash 的关键

c++ - 在 C++ 中使用 QStringList 构建 QHash

c++ - 嵌套类构造函数中的父模板参数推导

python - PySide QWebView 和下载不支持的内容

qt - 无法在 TextEdit 上突出显示

c++ - 在 Qt 的 QStringList 中搜索 QString 的一部分

c++ - QHash存储大量数据

c++ - 如何将变量作为参数放入 system()

c++ - 将 lambda 传递给数值库

c++ - 为什么一次又一次调用 popn() 时返回相同的输出