meta type

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

meta type

Beitrag von DBGTMaster »

Hallo,

bin gerade dabei, eine Software, welche in QT geschrieben wurde, zu studieren... Hierbei bin ich auf Code gestoßen, den ich irgendwie nicht so recht verstehen mag... Habs auch schon mit der DOC versucht, aber vielleicht könnt ihr mir helfen :=)

Was passiert hier genau?

Code: Alles auswählen

	qRegisterMetaType<QModelIndex>( "QModelIndex" );
	qRegisterMetaType<quint16>( "quint16" );
danke!

lG
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: meta type

Beitrag von franzf »

Was passiert hier genau?

Code: Alles auswählen

template <typename T>
int qRegisterMetaType(const char *typeName
#ifndef qdoc
    , T * dummy = 0
#endif
)
{
    const int typedefOf = dummy ? -1 : QtPrivate::QMetaTypeIdHelper<T>::qt_metatype_id();
    if (typedefOf != -1)
        return QMetaType::registerTypedef(typeName, typedefOf);

    typedef void*(*ConstructPtr)(const T*);
    ConstructPtr cptr = qMetaTypeConstructHelper<T>;
    typedef void(*DeletePtr)(T*);
    DeletePtr dptr = qMetaTypeDeleteHelper<T>;

    return QMetaType::registerType(typeName, reinterpret_cast<QMetaType::Destructor>(dptr),
                                   reinterpret_cast<QMetaType::Constructor>(cptr));
}
-> qmetatype.h
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: meta type

Beitrag von upsala »

http://doc.qt.nokia.com/latest/qmetatyp ... erMetaType

Dies ist z.B. notwendig um Daten des entsprechenden Datentyps in einem QVariant zu speichern oder damit Qt bei asynchronen Signal-Slot-Verbindungen die Daten austauschen kann.

Wobei bei deinen genannten Datentypen dies Qt-intern passieren sollte.
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: meta type

Beitrag von DBGTMaster »

Hallo,

danke, irgendetwas in dieser Richtung habe ich mir schon gedacht, nur hat es eben keinen Sinn ergeben, da diese schon existieren :)

danke!

lG
Antworten