La conversion de QList à QVariant
La classe contient ceci:
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);
}
}
Le ci-dessous fonctionne:
setSwitch2(QList<double>::fromVector(QVector<double>::fromStdVector(data->switch2)));
mais maintenant mon type de données est QVariantList
au lieu de QList<double>
.
Comment dois-je remplacer QList avec QVariant maintenant?
Cela ne fonctionne pas:
setSwitch1(QVariantList::fromVector(QVector<QVariant>::fromStdVector(data->switch1)));
Le corps de votre question n'a pas de sens après la lecture du titre. Il ne dispose même pas d'un QVariant n'importe où.
Il dispose d'une QVariantList. En fait, je veux le C++ tableau pour être accessible à partir de QML, donc je voulais remplacer QList avec QVariant ou QVariantList (celui des œuvres) @LaszloPapp
En fait, QList est déjà disponible à partir de QML!
Il dispose d'une QVariantList. En fait, je veux le C++ tableau pour être accessible à partir de QML, donc je voulais remplacer QList avec QVariant ou QVariantList (celui des œuvres) @LaszloPapp
En fait, QList est déjà disponible à partir de QML!
OriginalL'auteur Aquarius_Girl | 2014-01-06
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser ce constructeur:
I. e. lorsque vous stockez une QList comme un QVariant, le modèle type de la QList doit être d'un type qui est OK pour QVariant. Il n'y a pas d'autre constructeur ou une méthode de conversion pour cette.
Que vous devriez écrire ceci:
votre code ne montre pas l'ensemble du contexte, mais c'est le seul moyen de la conversion. Je ne suis pas sûr de ce que tu veux dire par "que dois-je remplacer par quoi?".
oui, ma faute, j'ai ajouté un peu plus de détails, s'il vous plaît dites ce que vous dois-je ajouter de plus.
En raison de QList être un modèle de classe c'est juste pas possible d'avoir un constructeur générique (comme proposé dans l'acceptation de réponse) pour QVariant à partir d'une QList. La construction de ces QVariant peut être réalisé avec QVariant::fromValue(). Bien que le résultat sera un QVariant contenant une QList<QVariant>.
OriginalL'auteur lpapp
Si pas besoin constructeur:
OriginalL'auteur ZolotovPavel