Класс содержит это:
Q_PROPERTY(QList<double> switch1 READ switch1 WRITE setSwitch1 NOTIFY switch1Changed)
void setSwitch2(QList<double> arg)
{
if (m_switch2 != arg)
{
m_switch2 = arg;
emit switch2Changed(arg);
}
}
Ниже работает:
setSwitch2(QList<double>::fromVector(QVector<double>::fromStdVector(data->switch2)));
но теперь мой тип данных QVariantList
вместо QList<double>
,
Как мне заменить QList на QVariant сейчас?
Это не работает:
setSwitch1(QVariantList::fromVector(QVector<QVariant>::fromStdVector(data->switch1)));
Просто используйте этот конструктор:
QVariant :: QVariant (const QList & вал)
Создает новый вариант со значением списка, val.
То есть при сохранении QList в качестве QVariant тип шаблона QList должен быть типом, который подходит для QVariant. Для этого нет другого конструктора или метода преобразования.
Вы должны написать это:
QVariant variant(
QList<double>::fromVector(QVector<double>::fromStdVector(data->switch2))
);
setSwitchVariant(variant);
Если нет необходимости конструктор:
QList<QUrl> params;
QVariant varParams;
varParams.setValue<QList<QUrl>>( params );