gpt4 book ai didi

c++ - 如何将 QMap> 转换为 QVariant?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:00 25 4
gpt4 key购买 nike

QVariant (需要 QSettings 类)支持从 QMap<QString, QVariant> 创建

但是尝试初始化这样的东西:

QMap<QString, QVariant(QMap<QString, QVariant>)> i;

给出错误:

function returning a function.

然后我尝试了 QMap<QString, QVariant> QVariant() 过载得到了

error: no matching function for call to QVariant::QVariant(QMap<QString, QMap<QString, int> >&)

现在我尝试了一个类型转换:

QMap<QString, (QVariant)QMap<QString, QVariant> > i;

得到了

template argument 2 is invalid
invalid type in declaration before ';' token

那么转换嵌套 QMap 所需的巫术是什么?到 QVariant对象?

最佳答案

  1. QMap<QString, QVariant(QMap<QString, QVariant>)> ,您已经定义了一个从字符串到函数类型的映射。你真正想要的是 QMap<QString, QVariant> .

  2. 你不想要 QMap<QString,(QVariant)QMap<QString, QVariant> >因为这在语法上是不正确的。两个模板参数都需要是类型名称,类型转换不能是类型名称的一部分。

  3. 放置一个 QMap<QString, int> (或几乎任何其他类型的 QMap )变成 QVariant不会工作。唯一QMap可以转换为 QVariant 的类型是 QMap<QString,QVariant> .

    此类型的 typedef 可能有用:QVariantMap .如果你坚持使用 QVariantMap对于这种情况,那么一切都会为您正常工作。

关于c++ - 如何将 QMap<QString, QMap<QString, int>> 转换为 QVariant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3281555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com