#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();
}
Próbuję przypisać do QVariant w zagnieżdżonej QVariantMap. Pierwszy qDebug() nic nie daje, ale drugi wyprowadza "asdf" zgodnie z oczekiwaniami. Jak przypisać klucz "bar" w zagnieżdżonej mapie zmiennych do wartości?Przypisywanie zagnieżdżonej QVariantMap
Dla czytelników przybywających tutaj w 2016: z Qt 5.1+ i kompilatorem C++ 11 ten kod może być znacznie uproszczony, jak wskazano w [moja odpowiedź poniżej] (http://stackoverflow.com/ pytania/11090846/przypisywanie-do-zagnieżdżonych-qvariantmap/37119292 # 37119292). –