#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();
}
Tôi đang cố gán cho một QVariant trong một QVariantMap lồng nhau. QDebug() đầu tiên đầu ra không có gì, nhưng đầu ra thứ hai "asdf" như mong đợi. Làm cách nào để gán khóa "thanh" trong bản đồ biến lồng nhau vào một giá trị?Chỉ định cho lồng nhau QVariantMap
Dành cho người đọc đến đây vào năm 2016: với Qt 5.1+ và trình biên dịch C++ 11, mã này có thể được thực hiện đơn giản hơn nhiều, như được chỉ ra trong [câu trả lời của tôi dưới đây] (http://stackoverflow.com/ câu hỏi/11090846/chỉ định-tới-lồng nhau-qvariantmap/37119292 # 37119292). –