QList<QPair<QDate, int>> in QVariant

Alles rund um die Programmierung mit Qt
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

QList<QPair<QDate, int>> in QVariant

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

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

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

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

Beitrag von DBGTMaster »

Danke für diese einfache Lösung :)!
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

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

Beitrag 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?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

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

Beitrag von Christian81 »

qRegisterMetaType() sollte das Problem lösen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten