IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Serializing Qt Data Types

Representations of data types that can be serialized by QDataStream.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Serializing Qt Data Types

The QDataStream allows you to serialize some of the Qt data types. The table below lists the data types that QDataStream can serialize and how they are represented. The format described below is version 13.

It is always best to cast integers to a Qt integer type, such as qint16 or quint32, when reading and writing. This ensures that you always know exactly what size integers you are reading and writing, no matter what the underlying platform and architecture the application happens to be running on.

bool

  • boolean

qint8

  • signed byte

qint16

  • signed 16-bit integer

qint32

  • signed 32-bit integer

qint64

  • signed 64-bit integer

quint8

  • unsigned byte

quint16

  • unsigned 16-bit integer

quint32

  • unsigned 32-bit integer

quint64

  • unsigned 64-bit integer

float

  • 32-bit floating point number using the standard IEEE 754 format

double

  • 64-bit floating point number using the standard IEEE 754 format

const char *

  • The string length (quint32)

  • The string bytes, excluding the terminating 0

QBitArray

  • The array size (quint32)

  • The array bits, i.e. (size + 7)/8 bytes

QBrush

  • The brush style (quint8)

  • The brush color (QColor)

  • If style is CustomPattern, the brush pixmap (QPixmap)

QByteArray

  • If the byte array is null: 0xFFFFFFFF (quint32)

  • Otherwise: the array size (quint32) followed by the array bytes, i.e. size bytes

QColor

  • Color spec (qint8)

  • Alpha value (quint16)

  • Red value (quint16)

  • Green value (quint16)

  • Blue value (quint16)

  • Pad value (quint16)

QCursor

  • Shape ID (qint16)

  • If shape is BitmapCursor: The bitmap (QPixmap), mask (QPixmap), and hot spot (QPoint)

QDate

  • Julian day (quint32)

QDateTime

QEasingCurve

  • type (quint8)

  • func (quint64)

  • hasConfig (bool)

  • If hasConfig is true then these fields follow:

  • list

  • period (double)

  • amplitude (double)

  • overshoot (double)

QFont

  • The family (QString)

  • The style name (QString)

  • The point size (double)

  • The pixel size (qint32)

  • The style hint (quint8)

  • The style strategy (quint16)

  • The char set (quint8)

  • The weight (quint8)

  • The font bits (quint8)

  • The font stretch (quint16)

  • The extended font bits (quint8)

  • The letter spacing (double)

  • The word spacing (double)

  • The hinting preference (quint8)

QHash<Key, T>

  • The number of items (quint32)

  • For all items, the key (Key) and value (T)

QIcon

  • The number of pixmap entries (quint32)

  • For all pixmap entries:

QImage

  • If the image is null a "null image" marker is saved; otherwise the image is saved in PNG or BMP format (depending on the stream version). If you want control of the format, stream the image into a QBuffer (using QImageIOHandler/QImageIOPlugin) and stream that.

QKeySequence

  • A QList<int>, where each integer is a key in the key sequence

QLinkedList<T>

  • The number of items (quint32)

  • The items (T)

QList<T>

  • The number of items (quint32)

  • The items (T)

QMap<Key, T>

  • The number of items (quint32)

  • For all items, the key (Key) and value (T)

QMargins

  • left (int)

  • top (int)

  • right (int)

  • bottom (int)

QMatrix

  • m11 (double)

  • m12 (double)

  • m21 (double)

  • m22 (double)

  • dx (double)

  • dy (double)

QMatrix4x4

  • m11 (float)

  • m12 (float)

  • m13 (float)

  • m14 (float)

  • m21 (float)

  • m22 (float)

  • m23 (float)

  • m24 (float)

  • m31 (float)

  • m32 (float)

  • m33 (float)

  • m34 (float)

  • m41 (float)

  • m42 (float)

  • m43 (float)

  • m44 (float)

QPair<T1, T2>

  • first (T1)

  • second (T2)

QPalette

The disabled, active, and inactive color groups, each of which consists of the following:

QPen

  • The pen styles (quint8)

  • The pen width (quint16)

  • The pen color (QColor)

QPicture

  • The size of the picture data (quint32)

  • The raw bytes of picture data (char)

QPixmap

  • Save it as a PNG image.

QPoint

  • The x coordinate (qint32)

  • The y coordinate (qint32)

QQuaternion

  • The scalar component (float)

  • The x coordinate (float)

  • The y coordinate (float)

  • The z coordinate (float)

QRect

  • left (qint32)

  • top (qint32)

  • right (qint32)

  • bottom (qint32)

QRegExp

  • The regexp pattern (QString)

  • Case sensitivity (quint8)

  • Regular expression syntax (quint8)

  • Minimal matching (quint8)

QRegularExpression

  • The regular expression pattern (QString)

  • The pattern options (quint32)

QRegion

  • The size of the data, i.e. 8 + 16 * (number of rectangles) (quint32)

  • 10 (qint32)

  • The number of rectangles (quint32)

  • The rectangles in sequential order (QRect)

QSize

  • width (qint32)

  • height (qint32)

QString

  • If the string is null: 0xFFFFFFFF (quint32)

  • Otherwise: The string length in bytes (quint32) followed by the data in UTF-16

QTime

  • Milliseconds since midnight (quint32)

QTransform

  • m11 (double)

  • m12 (double)

  • m13 (double)

  • m21 (double)

  • m22 (double)

  • m23 (double)

  • m31 (double)

  • m32 (double)

  • m33 (double)

QUrl

QVariant

  • The type of the data (quint32)

  • The null flag (qint8)

  • The data of the specified type

QVector2D

  • the x coordinate (float)

  • the y coordinate (float)

QVector3D

  • the x coordinate (float)

  • the y coordinate (float)

  • the z coordinate (float)

QVector4D

  • the x coordinate (float)

  • the y coordinate (float)

  • the z coordinate (float)

  • the w coordinate (float)

QVector<T>

  • The number of items (quint32)

  • The items (T)

See Also

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+