#include <QtCore/QCoreApplication>
#include <QVariant>
#include <QtDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QVariantMap map;
map["foo"] = QVariant(QVariantMap());
map["baz"] = "asdf";
qvariant_cast<QVariantMap>(map["foo"])["bar"] = "a";
qDebug() << qvariant_cast<QVariantMap>(map["foo"])["bar"].toString();
qDebug() << map["baz"].toString();
return a.exec();
}
Estoy tratando de asignar un QVariant dentro de un QVariantMap anidado. El primer qDebug() no genera nada, pero el segundo da como resultado "asdf". ¿Cómo asignaría la clave "barra" en el mapa de variables anidadas a un valor?Asignación a QVariantMap anidado
Para los lectores que lleguen aquí en 2016: con Qt 5.1+ y un compilador C++ 11, este código puede simplificarse mucho, como se señala en [mi respuesta a continuación] (http://stackoverflow.com/ preguntas/11090846/assigning-to-nested-qvariantmap/37119292 # 37119292). –