#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();
}
Sto tentando di assegnare a QVariant all'interno di una QVariantMap nidificata. Il primo qDebug() non emette nulla, ma il secondo emette "asdf" come previsto. Come potrei assegnare la chiave "bar" nella mappa variabile annidata ad un valore?Assegnazione alla QVariantMap nidificata
Per i lettori che arrivano qui nel 2016: con Qt 5.1+ e un compilatore C++ 11 questo codice può essere reso molto più semplice, come sottolineato in [la mia risposta qui sotto] domande/11090846/assegnando-to-nested-qvariantmap/37119292 # 37119292). –