1. 将 vector<QString>
转换为 QVariant
如果你需要将 vector<QString>
转换为 QVariant
,可以使用 QVariantList
来存储 QString
的列表,然后将其传递给 QVariant
:
#include <QVariant>
#include <QVariantList>
#include <QString>
#include <vector>
std::vector<QString> myStrings = {"Hello", "World"};
QVariantList myVariantList;
for (const QString &str : myStrings) {
myVariantList.append(str);
}
QVariant myVariant(myVariantList);
2. 从 QVariant
或 QVariantList
转换回 vector<QString>
如果你有一个 QVariant
或 QVariantList
,并希望将其转换回 vector<QString>
,可以这样操作:
QVariant myVariant; // 假设这是你的QVariant
if (myVariant.type() == QVariant::List) {
QVariantList myVariantList = myVariant.toList();
std::vector<QString> myStrings;
for (const QVariant &var : myVariantList) {
if (var.canConvert<QString>()) {
myStrings.push_back(var.toString());
}
}
}