Seite 1 von 1

QList<QPair<QDate, int>> in QVariant

Verfasst: 16. September 2013 16:11
von DBGTMaster
Hallo,

ich habe einen Typ definiert.
file.h:

Code: Alles auswählen

typedef QList < QPair< QDate, quint32 > > backList..
...
...
Q_DECLARE_METATYPE(backList);
file.cpp:

Code: Alles auswählen

backList list;
QVariant test(list);
Kompiler meint, QVariant hat als keinen Parameter "backlist".
Wie kann ich backList in einem QVariant übergeben?

Danke!

Re: QList<QPair<QDate, int>> in QVariant

Verfasst: 16. September 2013 19:22
von Christian81
Es gibt ja auch keine Funktion (in diesem Falle ctor) mit QVariant(const backList &data).
Du musst die Daten mit QVariant::setvalue<T>() setzen

Re: QList<QPair<QDate, int>> in QVariant

Verfasst: 18. September 2013 11:34
von DBGTMaster
Danke für diese einfache Lösung :)!

Re: QList<QPair<QDate, int>> in QVariant

Verfasst: 18. September 2013 16:53
von DBGTMaster
Hallo,

leider mein nächstes Problem:

Code: Alles auswählen

            typedef QList< QPair<QDate, quint32> > backwardList;
            backwardList backward;
            Q_DECLARE_METATYPE(backwardList)

            backward.append( QPair<QDate, quint32> (
                                 date, int-val
                                )
                            );

           QHash<QString, QVariant> cols;
           cols["backward"].setValue<backwardList>(backward);

           list.append( cols );
Der letzte Befehl wirft:

Code: Alles auswählen

QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
QVariant::save: unable to save type 258.
Woran liegt das?

Re: QList<QPair<QDate, int>> in QVariant

Verfasst: 18. September 2013 19:15
von Christian81
qRegisterMetaType() sollte das Problem lösen.