Seite 1 von 1
meta type
Verfasst: 29. Juli 2011 18:04
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
Re: meta type
Verfasst: 29. Juli 2011 18:23
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
Re: meta type
Verfasst: 29. Juli 2011 18:26
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.
Re: meta type
Verfasst: 29. Juli 2011 18:38
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