Sur cette page

QByteArray Class

La classe QByteArray fournit un tableau d'octets. Plus d'informations...

En-tête : #include <QByteArray>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Cette classe est fortement comparable.

Cette classe est fortement comparable à const char *.

Cette classe est fortement comparable à QChar, char16_t, QString, QStringView, QLatin1StringView, et QUtf8StringView.

Lors de la comparaison avec les types de chaînes, le contenu est interprété comme UTF-8.

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

class FromBase64Result
enum Base64Option { Base64Encoding, Base64UrlEncoding, KeepTrailingEquals, OmitTrailingEquals, IgnoreBase64DecodingErrors, AbortOnBase64DecodingErrors }
flags Base64Options
const_iterator
const_reverse_iterator
iterator
reverse_iterator

Fonctions publiques

QByteArray()
(since 6.8) QByteArray(QByteArrayView v)
QByteArray(const char *data, qsizetype size = -1)
QByteArray(qsizetype taille, Qt::Initialisation)
QByteArray(qsizetype size, char ch)
QByteArray(const QByteArray &autre)
QByteArray(QByteArray &&autre)
~QByteArray()
QByteArray &append(const QByteArray &ba)
QByteArray &append(QByteArrayView data)
QByteArray &append(char ch)
QByteArray &append(const char *str)
QByteArray &append(const char *str, qsizetype len)
QByteArray &append(qsizetype count, char ch)
(since 6.6) QByteArray &assign(QByteArrayView v)
(since 6.6) QByteArray &assign(InputIterator first, InputIterator last)
(since 6.6) QByteArray &assign(qsizetype n, char c)
char at(qsizetype i) const
char &back()
char back() const
QByteArray::iterator begin()
QByteArray::const_iterator begin() const
qsizetype capacity() const
QByteArray::const_iterator cbegin() const
QByteArray::const_iterator cend() const
void chop(qsizetype n)
QByteArray chopped(qsizetype len) &&
QByteArray chopped(qsizetype len) const &
void clear()
(since 6.0) int compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QByteArray::const_iterator constBegin() const
const char *constData() const
QByteArray::const_iterator constEnd() const
(since 6.0) bool contains(QByteArrayView bv) const
bool contains(char ch) const
(since 6.0) qsizetype count(QByteArrayView bv) const
qsizetype count(char ch) const
QByteArray::const_reverse_iterator crbegin() const
QByteArray::const_reverse_iterator crend() const
char *data()
const char *data() const
QByteArray::iterator end()
QByteArray::const_iterator end() const
(since 6.0) bool endsWith(QByteArrayView bv) const
bool endsWith(char ch) const
(since 6.1) QByteArray::iterator erase(QByteArray::const_iterator first, QByteArray::const_iterator last)
(since 6.5) QByteArray::iterator erase(QByteArray::const_iterator it)
QByteArray &fill(char ch, qsizetype size = -1)
(since 6.0) QByteArray first(qsizetype n) &&
(since 6.0) QByteArray first(qsizetype n) const &
char &front()
char front() const
(since 6.0) qsizetype indexOf(QByteArrayView bv, qsizetype from = 0) const
qsizetype indexOf(char ch, qsizetype from = 0) const
(since 6.0) QByteArray &insert(qsizetype i, QByteArrayView data)
QByteArray &insert(qsizetype i, const QByteArray &data)
QByteArray &insert(qsizetype i, const char *s)
QByteArray &insert(qsizetype i, char ch)
QByteArray &insert(qsizetype i, const char *data, qsizetype len)
QByteArray &insert(qsizetype i, qsizetype count, char ch)
bool isEmpty() const
bool isLower() const
bool isNull() const
bool isUpper() const
(since 6.3) bool isValidUtf8() const
(since 6.0) QByteArray last(qsizetype n) &&
(since 6.0) QByteArray last(qsizetype n) const &
(since 6.0) qsizetype lastIndexOf(QByteArrayView bv, qsizetype from) const
(since 6.2) qsizetype lastIndexOf(QByteArrayView bv) const
qsizetype lastIndexOf(char ch, qsizetype from = -1) const
QByteArray left(qsizetype len) &&
QByteArray left(qsizetype len) const &
QByteArray leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
QByteArray mid(qsizetype pos, qsizetype len = -1) &&
QByteArray mid(qsizetype pos, qsizetype len = -1) const &
(since 6.10) QByteArray &nullTerminate()
(since 6.10) QByteArray nullTerminated() &&
(since 6.10) QByteArray nullTerminated() const &
(since 6.4) QByteArray percentDecoded(char percent = '%') const &
(since 6.11) QByteArray percentDecoded(char percent = '%') &&
QByteArray &prepend(QByteArrayView ba)
QByteArray &prepend(char ch)
QByteArray &prepend(const QByteArray &ba)
QByteArray &prepend(const char *str)
QByteArray &prepend(const char *str, qsizetype len)
QByteArray &prepend(qsizetype count, char ch)
void push_back(const QByteArray &autre)
(since 6.0) void push_back(QByteArrayView str)
void push_back(char ch)
void (const char *str) push_back(const char *str)
void (const char *str) push_front(const QByteArray &other)
(since 6.0) void push_front(QByteArrayView str)
void (const char *str) push_front(char ch)
void (const char *str) push_front(const char *str)
QByteArray::reverse_iterator rbegin()
QByteArray::const_reverse_iterator rbegin() const
QByteArray &remove(qsizetype pos, qsizetype len)
(since 6.5) QByteArray &removeAt(qsizetype pos)
(since 6.5) QByteArray &removeFirst()
(since 6.1) QByteArray &removeIf(prédicat pred)
(since 6.5) QByteArray &removeLast()
QByteArray::reverse_iterator rend()
QByteArray::const_reverse_iterator rend() const
QByteArray repeated(qsizetype times) const
QByteArray &replace(qsizetype pos, qsizetype len, QByteArrayView after)
(since 6.0) QByteArray &replace(QByteArrayView avant, QByteArrayView après)
QByteArray &replace(char avant, QByteArrayView après)
QByteArray &replace(char avant, char après)
QByteArray &replace(const char *before, qsizetype bsize, const char *after, qsizetype asize)
QByteArray &replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)
void reserve(qsizetype size)
void resize(qsizetype taille)
(since 6.4) void resize(qsizetype newSize, char c)
(since 6.8) void resizeForOverwrite(qsizetype taille)
QByteArray right(qsizetype len) &&
QByteArray right(qsizetype len) const &
QByteArray rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const
QByteArray &setNum(int n, int base = 10)
QByteArray &setNum(long n, int base = 10)
QByteArray &setNum(qlonglong n, int base = 10)
QByteArray &setNum(qulonglong n, int base = 10)
QByteArray &setNum(short n, int base = 10)
QByteArray &setNum(uint n, int base = 10)
QByteArray &setNum(ulong n, int base = 10)
QByteArray &setNum(ushort n, int base = 10)
QByteArray &setNum(double n, char format = 'g', int precision = 6)
QByteArray &setNum(float n, char format = 'g', int precision = 6)
QByteArray &setRawData(const char *data, qsizetype size)
vide shrink_to_fit()
QByteArray simplified() const
qsizetype size() const
(since 6.8) QByteArray &slice(qsizetype pos, qsizetype n)
(since 6.8) QByteArray &slice(qsizetype pos)
(since 6.0) QByteArray sliced(qsizetype pos, qsizetype n) &&
(since 6.0) QByteArray sliced(qsizetype pos, qsizetype n) const &
(since 6.0) QByteArray sliced(qsizetype pos) &&
(since 6.0) QByteArray sliced(qsizetype pos) const &
QList<QByteArray> split(char sep) const
void squeeze()
(since 6.0) bool startsWith(QByteArrayView bv) const
bool startsWith(char ch) const
void (QByteArrayView &other) swap(QByteArray &autre)
QByteArray toBase64(QByteArray::Base64Options options = Base64Encoding) const
CFDataRef toCFData() const
double toDouble(bool *ok = nullptr) const
(since 6.5) emscripten::val toEcmaUint8Array()
float toFloat(bool *ok = nullptr) const
QByteArray toHex(char separator = '\0') const
int toInt(bool *ok = nullptr, int base = 10) const
long toLong(bool *ok = nullptr, int base = 10) const
qlonglong toLongLong(bool *ok = nullptr, int base = 10) const
QByteArray toLower() const
NSData *toNSData() const
QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const
CFDataRef toRawCFData() const
NSData *toRawNSData() const
court toShort(bool *ok = nullptr, int base = 10) const
std::string toStdString() const
uint toUInt(bool *ok = nullptr, int base = 10) const
ulong toULong(bool *ok = nullptr, int base = 10) const
qulonglong toULongLong(bool *ok = nullptr, int base = 10) const
ushort toUShort(bool *ok = nullptr, int base = 10) const
QByteArray toUpper() const
QByteArray trimmed() const
void truncate(qsizetype pos)
operator const char *() const
operator const void *() const
(since 6.10) operator std::string_view() const
QByteArray &operator+=(const QByteArray &ba)
QByteArray &operator+=(char ch)
QByteArray &operator+=(const char *str)
QByteArray &operator=(QByteArray &&autre)
QByteArray &operator=(const QByteArray &autre)
QByteArray &operator=(const char *str)
char &operator[](qsizetype i)
char operator[](qsizetype i) const

Membres publics statiques

QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray fromCFData(CFDataRef data)
(since 6.5) QByteArray fromEcmaUint8Array(emscripten::val uint8array)
QByteArray fromHex(const QByteArray &hexEncoded)
QByteArray fromNSData(const NSData *data)
QByteArray fromPercentEncoding(const QByteArray &input, char percent = '%')
(since 6.11) QByteArray fromPercentEncoding(QByteArray &&input, char percent = '%')
QByteArray fromRawCFData(CFDataRef data)
QByteArray fromRawData(const char *data, qsizetype size)
QByteArray fromRawNSData(const NSData *data)
QByteArray fromStdString(const std::string &str)
(since 6.8) qsizetype maxSize()
QByteArray number(int n, int base = 10)
QByteArray number(long n, int base = 10)
QByteArray number(qlonglong n, int base = 10)
QByteArray number(qulonglong n, int base = 10)
QByteArray number(uint n, int base = 10)
QByteArray number(ulong n, int base = 10)
QByteArray number(double n, char format = 'g', int precision = 6)
(since 6.1) qsizetype erase(QByteArray &ba, const T &t)
(since 6.1) qsizetype erase_if(QByteArray &ba, Predicate pred)
quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)
QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)
QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)
QByteArray qUncompress(const QByteArray &data)
QByteArray qUncompress(const uchar *data, qsizetype nbytes)
int qstrcmp(const char *str1, const char *str2)
char *qstrcpy(char *dst, const char *src)
char *qstrdup(const char *src)
int qstricmp(const char *str1, const char *str2)
size_t qstrlen(const char *str)
int qstrncmp(const char *str1, const char *str2, size_t len)
char *qstrncpy(char *dst, const char *src, size_t len)
int qstrnicmp(const char *str1, const char *str2, size_t len)
size_t qstrnlen(const char *str, size_t maxlen)
bool operator!=(const QByteArray &lhs, const QByteArray &rhs)
bool operator!=(const QByteArray &lhs, const char *const &rhs)
bool operator!=(const char *const &lhs, const QByteArray &rhs)
(since 6.4) QByteArray operator""_ba(const char *str, size_t size)
(since 6.9) QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)
QByteArray operator+(char a1, const QByteArray &a2)
(since 6.9) QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)
QByteArray operator+(const QByteArray &a1, char a2)
QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
QByteArray operator+(const QByteArray &a1, const char *a2)
QByteArray operator+(const char *a1, const QByteArray &a2)
bool operator<(const QByteArray &lhs, const QByteArray &rhs)
bool operator<(const QByteArray &lhs, const char *const &rhs)
bool operator<(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator<<(QDataStream &out, const QByteArray &ba)
bool operator<=(const QByteArray &lhs, const QByteArray &rhs)
bool operator<=(const QByteArray &lhs, const char *const &rhs)
bool operator<=(const char *const &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const char *const &rhs)
bool operator==(const char *const &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const char *const &rhs)
bool operator>(const char *const &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const char *const &rhs)
bool operator>=(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator>>(QDataStream &in, QByteArray &ba)

Macros

Description détaillée

QByteArray peut être utilisé pour stocker à la fois des octets bruts (y compris des '\0') et des chaînes traditionnelles de 8 bits terminées par '\0'. L'utilisation de QByteArray est beaucoup plus pratique que celle de const char *. En coulisse, il s'assure toujours que les données sont suivies d'un terminateur '\0' et utilise le partage implicite (copie sur écriture) pour réduire l'utilisation de la mémoire et éviter les copies inutiles de données.

Outre QByteArray, Qt fournit également la classe QString pour stocker des données de type chaîne de caractères. Dans la plupart des cas, QString est la classe à utiliser. Elle comprend son contenu comme du texte Unicode (encodé en utilisant UTF-16) alors que QByteArray vise à éviter les hypothèses sur l'encodage ou la sémantique des octets qu'il stocke (à l'exception de quelques cas hérités où il utilise l'ASCII). En outre, QString est utilisé dans l'ensemble de l'API Qt. Les deux principaux cas où QByteArray est approprié sont lorsque vous avez besoin de stocker des données binaires brutes, et lorsque la conservation de la mémoire est critique (par exemple, avec Qt pour Linux embarqué).

Une façon d'initialiser un QByteArray est simplement de passer un const char * à son constructeur. Par exemple, le code suivant crée un tableau d'octets de taille 5 contenant les données "Hello" :

QByteArray ba("Hello");

Bien que size() soit 5, le tableau d'octets conserve également un octet supplémentaire "\0" à la fin, de sorte que si une fonction est utilisée pour demander un pointeur sur les données sous-jacentes (par exemple, un appel à data()), les données pointées sont garanties comme étant terminées "\0".

QByteArray fait une copie profonde des données const char *, de sorte que vous pouvez les modifier ultérieurement sans subir d'effets secondaires. (Si, par exemple pour des raisons de performance, vous ne voulez pas faire une copie profonde des données, utilisez plutôt QByteArray::fromRawData()).

Une autre approche consiste à définir la taille du tableau à l'aide de resize() et à initialiser les données octet par octet. QByteArray utilise des index basés sur 0, tout comme les tableaux C++. Pour accéder à l'octet à une position d'index particulière, vous pouvez utiliser operator[](). Sur les tableaux d'octets non-const, operator[]() renvoie une référence à un octet qui peut être utilisé du côté gauche d'une affectation. Par exemple, dans le cas d'un accès en lecture seule :

QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
ba[1] = 0xb8;
ba[2] = 0x64;
ba[3] = 0x18;
ba[4] = 0xca;

Pour un accès en lecture seule, une syntaxe alternative consiste à utiliser at() :

for (qsizetype i = 0; i < ba.size(); ++i) {
    if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
        cout << "Found character in range [a-f]" << endl;
}

at() peut être plus rapide que operator[](), car il ne provoque jamais de copie profonde.

Pour extraire plusieurs octets à la fois, utilisez first(), last() ou sliced().

Un tableau QByteArray peut contenir '\0' octets. La fonction size() renvoie toujours la taille de l'ensemble du tableau, y compris les octets '\0' intégrés, mais à l'exclusion de la terminaison '\0' ajoutée par QByteArray. Par exemple :

QByteArray ba1("ca\0r\0t");
ba1.size();                     // Returns 2.
ba1.constData();                // Returns "ca" with terminating \0.

QByteArray ba2("ca\0r\0t", 3);
ba2.size();                     // Returns 3.
ba2.constData();                // Returns "ca\0" with terminating \0.

QByteArray ba3("ca\0r\0t", 4);
ba3.size();                     // Returns 4.
ba3.constData();                // Returns "ca\0r" with terminating \0.

const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};
QByteArray ba4(QByteArray::fromRawData(cart, 6));
ba4.size();                     // Returns 6.
ba4.constData();                // Returns "ca\0r\0t" without terminating \0.

Si vous souhaitez obtenir la longueur des données jusqu'au premier octet '\0' exclu, appelez qstrlen() sur le tableau d'octets.

Après un appel à resize(), les octets nouvellement alloués ont des valeurs indéfinies. Pour donner à tous les octets une valeur particulière, appelez fill().

Pour obtenir un pointeur sur les octets actuels, appelez data() ou constData(). Ces fonctions renvoient un pointeur au début des données. La validité du pointeur est garantie jusqu'à ce qu'une fonction non-const soit appelée sur le QByteArray. Il est également garanti que les données se terminent par un octet "\0", sauf si le QByteArray a été créé à partir de raw data. Cet octet "\0" est automatiquement fourni par le QByteArray et n'est pas compté dans size().

QByteArray fournit les fonctions de base suivantes pour modifier les données par octet : append(), prepend(), insert(), replace() et remove(). Par exemple :

QByteArray x("and");
x.prepend("rock ");         // x == "rock and"
x.append(" roll");          // x == "rock and roll"
x.replace(5, 3, "&");       // x == "rock & roll"

Dans l'exemple ci-dessus, les deux premiers arguments de la fonction replace() sont la position à partir de laquelle il faut commencer à remplacer et le nombre d'octets à remplacer.

Lorsque les fonctions de modification des données augmentent la taille du tableau, elles peuvent entraîner une réallocation de la mémoire pour l'objet QByteArray. Dans ce cas, QByteArray s'agrandit d'un nombre d'octets supérieur à celui dont il a besoin dans l'immédiat, afin de disposer de l'espace nécessaire pour continuer à s'agrandir sans réaffectation jusqu'à ce que la taille du tableau ait considérablement augmenté.

Les fonctions insert(), remove() et, lors du remplacement d'un sous-réseau par un autre de taille différente, replace() peuvent être lentes(temps linéaire) pour les grands tableaux, car elles nécessitent de déplacer de nombreux octets du tableau d'au moins une position en mémoire.

Si vous construisez progressivement un QByteArray et que vous savez à l'avance combien d'octets le QByteArray contiendra, vous pouvez appeler reserve(), en demandant au QByteArray de préallouer une certaine quantité de mémoire. Vous pouvez également appeler capacity() pour connaître la quantité de mémoire allouée au QByteArray.

Notez que l'utilisation d'opérateurs et de fonctions non-const peut amener le QByteArray à effectuer une copie profonde des données, en raison du partage implicite.

Le QByteArray fournit des itérateurs de style STL (QByteArray::const_iterator et QByteArray::iterator). En pratique, les itérateurs sont pratiques lorsqu'on travaille avec des algorithmes génériques fournis par la bibliothèque standard C++.

Remarque : les itérateurs et les références à des éléments individuels de QByteArray sont sujets à des problèmes de stabilité. Ils sont souvent invalidés lorsqu'une opération de modification de QByteArray (par exemple insert() ou remove()) est appelée. Lorsque la stabilité et une fonctionnalité similaire à celle d'un itérateur sont nécessaires, vous devriez utiliser des index plutôt que des itérateurs, car ils ne sont pas liés à l'état interne du QByteArray et ne sont donc pas invalidés.

Note : Les itérateurs sur un QByteArray, et les références à des octets individuels à l'intérieur d'un QByteArray, ne peuvent pas être considérés comme valides lorsqu'une méthode non-const du QByteArray est appelée. L'accès à un tel itérateur ou à une telle référence après l'appel à une méthode non-const conduit à un comportement non défini. Lorsque la stabilité d'une fonctionnalité similaire à celle d'un itérateur est requise, vous devez utiliser des index plutôt que des itérateurs, car ils ne sont pas liés à l'état interne du QByteArray et ne sont donc pas invalidés.

Si vous souhaitez trouver toutes les occurrences d'un octet particulier ou d'une séquence d'octets dans un QByteArray, utilisez indexOf() ou lastIndexOf(). Le premier effectue une recherche vers l'avant à partir d'une position d'index donnée, tandis que le second effectue une recherche vers l'arrière. Les deux renvoient la position d'index de la séquence d'octets s'ils la trouvent ; sinon, ils renvoient -1. Par exemple, voici une boucle typique qui recherche toutes les occurrences d'une chaîne de caractères particulière :

QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
qsizetype j = 0;
while ((j = ba.indexOf("<b>", j)) != -1) {
    cout << "Found <b> tag at index position " << j << endl;
    ++j;
}

Si vous souhaitez simplement vérifier si un QByteArray contient une séquence d'octets particulière, utilisez contains(). Si vous voulez savoir combien de fois une séquence d'octets particulière apparaît dans le tableau d'octets, utilisez count(). Si vous souhaitez remplacer toutes les occurrences d'une valeur particulière par une autre, utilisez l'une des surcharges à deux paramètres replace().

QByteArraypeuvent être comparés à l'aide d'opérateurs surchargés tels que operator<(), operator<=(), operator==(), operator>=(), etc. La comparaison est basée exclusivement sur les valeurs numériques des octets et est très rapide, mais ne correspond pas aux attentes d'un être humain. QString::localeAwareCompare() est un meilleur choix pour trier les chaînes de l'interface utilisateur.

Pour des raisons historiques, QByteArray fait la distinction entre un tableau d'octets nul et un tableau d'octets vide. Un tableau d'octets nul est un tableau d'octets initialisé à l'aide du constructeur par défaut de QByteArray ou en passant (const char *)0 au constructeur. Un tableau d'octets vide est un tableau d'octets de taille 0. Un tableau d'octets nul est toujours vide, mais un tableau d'octets vide n'est pas nécessairement nul :

QByteArray().isNull();          // returns true
QByteArray().isEmpty();         // returns true

QByteArray("").isNull();        // returns false
QByteArray("").isEmpty();       // returns true

QByteArray("abc").isNull();     // returns false
QByteArray("abc").isEmpty();    // returns false

Toutes les fonctions, à l'exception de isNull(), traitent les tableaux d'octets nuls de la même manière que les tableaux d'octets vides. Par exemple, data() renvoie un pointeur valide(et non nullptr) vers un octet '\0' pour un tableau d'octets nul et QByteArray() compare à QByteArray(""). Nous vous recommandons de toujours utiliser isEmpty() et d'éviter isNull().

Taille maximale et conditions de sortie de mémoire

La taille maximale d'un QByteArray dépend de l'architecture. La plupart des systèmes 64 bits peuvent allouer plus de 2 Go de mémoire, avec une limite typique de 2^63 octets. La valeur réelle dépend également des frais généraux nécessaires à la gestion du bloc de données. Par conséquent, vous pouvez vous attendre à une taille maximale de 2 Go moins les frais généraux sur les plates-formes 32 bits, et de 2^63 octets moins les frais généraux sur les plates-formes 64 bits. Le nombre d'éléments pouvant être stockés dans un QByteArray correspond à cette taille maximale.

Lorsque l'allocation de mémoire échoue, QByteArray lance une exception std::bad_alloc si l'application est compilée avec un support d'exception. Les conditions de mémoire insuffisante dans les conteneurs Qt sont le seul cas où Qt lèvera des exceptions. Si les exceptions sont désactivées, le fait de manquer de mémoire est un comportement indéfini.

Notez que le système d'exploitation peut imposer des limites supplémentaires aux applications qui détiennent une grande quantité de mémoire allouée, en particulier de grands blocs contigus. De telles considérations, la configuration d'un tel comportement ou toute atténuation sont en dehors du champ d'application de l'API QByteArray.

Locales C et fonctions ASCII

QByteArray traite généralement les données comme des octets, sans présumer de la sémantique ; lorsqu'il présume de la sémantique, il utilise la locale C et le codage ASCII. Les encodages Unicode standard sont pris en charge par QString, d'autres encodages peuvent être pris en charge en utilisant QStringEncoder et QStringDecoder pour convertir en Unicode. Pour une interprétation locale du texte, utilisez QLocale ou QString.

Chaînes C

Les chaînes C traditionnelles, également connues sous le nom de chaînes terminées par '\0', sont des séquences d'octets, spécifiées par un point de départ et incluant implicitement chaque octet jusqu'au premier octet '\0' suivant, sans toutefois l'inclure. Les méthodes qui acceptent un tel pointeur, sans longueur, l'interpréteront comme cette séquence d'octets. Par construction, une telle séquence ne peut pas contenir d'octet "\0".

D'autres surcharges acceptent un pointeur de départ et un comptage d'octets ; elles utilisent le nombre donné d'octets, suivant l'adresse de départ, sans tenir compte du fait que certains d'entre eux sont des octets '\0'. Dans certains cas, lorsqu'il n'y a pas de surcharge ne prenant qu'un pointeur, passer une longueur de -1 fera que la méthode utilisera le décalage du premier octet '\0' après le pointeur comme longueur ; une longueur de -1 ne doit être passée que si la méthode indique explicitement qu'elle fait cela (dans ce cas, c'est typiquement un argument par défaut).

Espacement des caractères

Il est souvent nécessaire de supprimer les caractères d'espacement d'un tableau d'octets ('\n', '\t', ' ', etc.). Si vous souhaitez supprimer l'espacement des deux extrémités d'un QByteArray, utilisez trimmed(). Si vous souhaitez également remplacer chaque série de caractères d'espacement par un seul caractère d'espacement dans le tableau d'octets, utilisez simplified(). Seuls les caractères d'espacement ASCII sont reconnus à cette fin.

Conversions entre nombres et chaînes de caractères

Les fonctions qui effectuent des conversions entre les types de données numériques et les représentations de chaînes de caractères sont exécutées dans la locale C, quels que soient les paramètres de la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions entre nombres et chaînes de caractères en fonction de la locale.

Cas des caractères

Dans QByteArray, la notion de majuscule et de minuscule et de comparaison indépendante de la casse est limitée à l'ASCII. Les caractères non ASCII sont traités comme des caractères sans casse, puisque leur casse dépend de l'encodage. Cela affecte les fonctions qui supportent une option insensible à la casse ou qui modifient la casse de leurs arguments. Les fonctions concernées sont compare(), isLower(), isUpper(), toLower() et toUpper().

Ce problème ne s'applique pas aux QStrings puisqu'ils représentent des caractères en utilisant Unicode.

Voir aussi QByteArrayView, QString, et QBitArray.

Documentation sur les types de membres

enum QByteArray::Base64Option
flags QByteArray::Base64Options

Cette énumération contient les options disponibles pour l'encodage et le décodage de Base64. Base64 est défini par la RFC 4648, avec les options suivantes :

ConstanteValeurDescription
QByteArray::Base64Encoding0(par défaut) L'alphabet Base64 normal, appelé simplement "base64"
QByteArray::Base64UrlEncoding1Un alphabet alternatif, appelé "base64url", qui remplace deux caractères dans l'alphabet pour être plus convivial pour les URL.
QByteArray::KeepTrailingEquals0(par défaut) Conserve les signes égaux de remplissage à la fin des données encodées, de sorte que les données ont toujours une taille multiple de quatre.
QByteArray::OmitTrailingEquals2Omet d'ajouter les signes égaux de remplissage à la fin des données encodées.
QByteArray::IgnoreBase64DecodingErrors0Lors du décodage des données encodées en Base64, ignore les erreurs dans les données d'entrée ; les caractères invalides sont simplement ignorés. Cette valeur de l'énumération a été ajoutée dans Qt 5.15.
QByteArray::AbortOnBase64DecodingErrors4Lors du décodage de données encodées en Base64, s'arrête à la première erreur de décodage. Cette valeur a été ajoutée dans Qt 5.15.

QByteArray::fromBase64Encoding() et QByteArray::fromBase64() ignorent les options KeepTrailingEquals et OmitTrailingEquals. Si l'option IgnoreBase64DecodingErrors est spécifiée, ils ne signaleront pas d'erreurs en cas d'absence de signes égaux de fin de ligne ou s'ils sont trop nombreux. Si l'option AbortOnBase64DecodingErrors est spécifiée, l'entrée doit soit ne pas avoir de remplissage, soit avoir le nombre correct de signes égaux.

Le type Base64Options est un typedef pour QFlags<Base64Option>. Il stocke une combinaison OU de valeurs Base64Option.

QByteArray::const_iterator

Ce typedef fournit un itérateur constant de style STL pour QByteArray.

Voir aussi QByteArray::const_reverse_iterator et QByteArray::iterator.

QByteArray::const_reverse_iterator

Ce typedef fournit un const reverse iterator de style STL pour QByteArray.

Voir aussi QByteArray::reverse_iterator et QByteArray::const_iterator.

QByteArray::iterator

Ce typedef fournit un itérateur non-const de style STL pour QByteArray.

Voir aussi QByteArray::reverse_iterator et QByteArray::const_iterator.

QByteArray::reverse_iterator

Ce typedef fournit un itérateur inverse non-const de style STL pour QByteArray.

Voir aussi QByteArray::const_reverse_iterator et QByteArray::iterator.

Documentation des fonctions membres

[constexpr noexcept] QByteArray::QByteArray()

Construit un tableau d'octets vide.

Voir également isEmpty().

[explicit, since 6.8] QByteArray::QByteArray(QByteArrayView v)

Construit un tableau d'octets initialisé avec les données de la vue tableau d'octets.

Le QByteArray sera nul si et seulement si v est nul.

Cette fonction a été introduite dans Qt 6.8.

QByteArray::QByteArray(const char *data, qsizetype size = -1)

Construit un tableau d'octets contenant les premiers size octets du tableau data.

Si data vaut 0, un tableau d'octets nul est construit.

Si size est négatif, data est supposé pointer vers une chaîne de caractères terminée par '\0' et sa longueur est déterminée dynamiquement.

QByteArray fait une copie profonde des données de la chaîne.

Voir également fromRawData().

QByteArray::QByteArray(qsizetype size, Qt::Initialization)

Construit un tableau d'octets de taille size dont le contenu n'est pas initialisé.

Par exemple :

QByteArray buffer(123, Qt::Uninitialized);

QByteArray::QByteArray(qsizetype size, char ch)

Construit un tableau d'octets de taille size dont chaque octet vaut ch.

Voir aussi fill().

[noexcept] QByteArray::QByteArray(const QByteArray &other)

Construit une copie de other.

Cette opération prend un temps constant, car le QByteArray est implicitement partagé. Cela rend le retour d'un QByteArray à partir d'une fonction très rapide. Si une instance partagée est modifiée, elle sera copiée (copy-on-write), ce qui prend un temps linéaire.

Voir également operator=().

[noexcept] QByteArray::QByteArray(QByteArray &&other)

Move-construit une instance de QByteArray, en la faisant pointer sur le même objet que other.

[noexcept] QByteArray::~QByteArray()

Détruit le tableau d'octets.

QByteArray &QByteArray::append(const QByteArray &ba)

Ajoute le tableau d'octets ba à la fin de ce tableau d'octets.

Exemple :

QByteArray x("free");
QByteArray y("dom");
x.append(y);
// x == "freedom"

C'est la même chose que insert(size(), ba).

Remarque : QByteArray est une classe implicitement partagée. Par conséquent, si vous ajoutez à un tableau d'octets vide, le tableau d'octets partagera simplement les données contenues dans ba. Dans ce cas, aucune copie de données n'est effectuée, ce qui prend un temps constant. Si une instance partagée est modifiée, elle sera copiée (copy-on-write), ce qui prend un temps linéaire.

Si le tableau d'octets auquel la fonction append est appliquée n'est pas vide, une copie profonde des données est effectuée, ce qui prend un temps linéaire.

La fonction append() est généralement très rapide(temps constant), car QByteArray préaffecte de l'espace supplémentaire à la fin des données, ce qui lui permet de croître sans avoir à réaffecter l'ensemble du tableau à chaque fois.

Voir également operator+=(), prepend() et insert().

QByteArray &QByteArray::append(QByteArrayView data)

Ajoute data à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::append(char ch)

Ajoute l'octet ch à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::append(const char *str)

Ajoute la chaîne '\0'-terminée str à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::append(const char *str, qsizetype len)

Ajoute les premiers len octets commençant par str à ce tableau d'octets et renvoie une référence à ce tableau d'octets. Les octets ajoutés peuvent inclure des octets '\0'.

Si len est négatif, str sera considéré comme une chaîne de caractères terminée par '\0' et la longueur à copier sera déterminée automatiquement à l'aide de qstrlen().

Si len est égal à zéro ou si str est nul, rien n'est ajouté au tableau d'octets. Assurez-vous que len n' est pas plus long que str.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::append(qsizetype count, char ch)

Ajoute count copies de l'octet ch à ce tableau d'octets et renvoie une référence à ce tableau d'octets.

Si count est négatif ou nul, rien n'est ajouté au tableau d'octets.

Il s'agit d'une fonction surchargée.

[since 6.6] QByteArray &QByteArray::assign(QByteArrayView v)

Remplace le contenu de ce tableau d'octets par une copie de v et renvoie une référence à ce tableau d'octets.

La taille de ce tableau d'octets sera égale à la taille de v.

Cette fonction n'alloue de la mémoire que si la taille de v dépasse la capacité de ce tableau d'octets ou si ce tableau d'octets est partagé.

Cette fonction a été introduite dans Qt 6.6.

[since 6.6] template <typename InputIterator, QByteArray::if_input_iterator<InputIterator> = true> QByteArray &QByteArray::assign(InputIterator first, InputIterator last)

Remplace le contenu de ce tableau d'octets par une copie des éléments de l'intervalle de l'itérateur [first, last) et renvoie une référence à ce tableau d'octets.

La taille de ce tableau d'octets sera égale au nombre d'éléments dans l'intervalle [first, last).

Cette fonction n'allouera de la mémoire que si le nombre d'éléments dans l'intervalle dépasse la capacité de ce tableau d'octets ou si ce tableau d'octets est partagé.

Remarque : le comportement est indéfini si l'un des arguments est un itérateur dans *this ou si [first, last) n'est pas un intervalle valide.

Contraintes

Participe à la résolution des surcharges uniquement si InputIterator répond aux exigences d'un LegacyInputIterator.

Cette fonction a été introduite dans Qt 6.6.

[since 6.6] QByteArray &QByteArray::assign(qsizetype n, char c)

Remplace le contenu de ce tableau d'octets par n copies de c et renvoie une référence à ce tableau d'octets.

La taille de ce tableau d'octets sera égale à n, qui doit être non négatif.

Cette fonction n'allouera de la mémoire que si n dépasse la capacité de ce tableau d'octets ou si ce tableau d'octets est partagé.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi fill().

char QByteArray::at(qsizetype i) const

Renvoie l'octet à la position d'index i dans le tableau d'octets.

i doit être une position d'index valide dans le tableau d'octets (c'est-à-dire 0 <= i < size()).

Voir aussi operator[]().

char &QByteArray::back()

Renvoie une référence au dernier octet du tableau d'octets. Identique à operator[](size() - 1).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur un tableau d'octets vide constitue un comportement indéfini.

Voir aussi front(), at() et operator[]().

char QByteArray::back() const

Renvoie le dernier octet du tableau d'octets. Identique à at(size() - 1).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur un tableau d'octets vide constitue un comportement indéfini.

Voir aussi front(), at() et operator[]().

QByteArray::iterator QByteArray::begin()

Renvoie un itérateur de style STL pointant sur le premier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi constBegin() et end().

[noexcept] QByteArray::const_iterator QByteArray::begin() const

Cette fonction surcharge QByteArray::begin().

qsizetype QByteArray::capacity() const

Renvoie le nombre maximum d'octets pouvant être stockés dans le tableau d'octets sans forcer une réallocation.

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire par QByteArray. En général, vous n'aurez que rarement besoin d'appeler cette fonction. Si vous voulez savoir combien d'octets se trouvent dans le tableau d'octets, appelez size().

Remarque : un tableau d'octets alloué statiquement affichera une capacité de 0, même s'il n'est pas vide.

Remarque : la position de l'espace libre dans le bloc de mémoire alloué n'est pas définie. En d'autres termes, il ne faut pas supposer que la mémoire libre est toujours située après les éléments initialisés.

Voir également reserve() et squeeze().

[noexcept] QByteArray::const_iterator QByteArray::cbegin() const

Renvoie un itérateur constant de style STL pointant sur le premier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi begin() et cend().

[noexcept] QByteArray::const_iterator QByteArray::cend() const

Renvoie un itérateur constant de style STL pointant juste après le dernier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi cbegin() et end().

void QByteArray::chop(qsizetype n)

Supprime n octets de la fin du tableau d'octets.

Si n est supérieur à size(), le résultat est un tableau d'octets vide.

Exemple :

QByteArray ba("STARTTLS\r\n");
ba.chop(2);                 // ba == "STARTTLS"

Voir également truncate(), resize() et first().

QByteArray QByteArray::chopped(qsizetype len) const &

QByteArray QByteArray::chopped(qsizetype len) &&

Renvoie un tableau d'octets contenant les octets size() - len les plus à gauche de ce tableau d'octets.

Remarque : le comportement est indéfini si len est négatif ou supérieur à size().

Voir aussi endsWith(), first(), last(), sliced(), chop(), truncate() et slice().

void QByteArray::clear()

Efface le contenu du tableau d'octets et le rend nul.

Voir aussi resize() et isNull().

[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie un nombre entier inférieur, égal ou supérieur à zéro selon que ce QByteArray est classé avant, à la même position que ou après le QByteArrayView bv . La comparaison est effectuée en fonction de la sensibilité à la casse cs.

Cette fonction a été introduite dans Qt 6.0.

Voir également operator== et Character Case.

[noexcept] QByteArray::const_iterator QByteArray::constBegin() const

Renvoie un itérateur constant de style STL pointant sur le premier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi begin() et constEnd().

[noexcept] const char *QByteArray::constData() const

Renvoie un pointeur sur les données constantes stockées dans le tableau d'octets. Le pointeur peut être utilisé pour accéder aux octets qui composent le tableau. Les données sont '\0'-terminées sauf si l'objet QByteArray a été créé à partir de données brutes.

Le pointeur reste valide tant qu'il n'y a pas de détachement et que l'objet QByteArray n'est pas modifié.

Cette fonction est surtout utile pour passer un tableau d'octets à une fonction qui accepte un const char *.

Remarque : un QByteArray peut stocker n'importe quelle valeur d'octet, y compris des '\0', mais la plupart des fonctions qui prennent des arguments char * supposent que les données se terminent au premier '\0' qu'elles rencontrent.

Voir également data(), operator[]() et fromRawData().

[noexcept] QByteArray::const_iterator QByteArray::constEnd() const

Renvoie un itérateur constant de style STL pointant juste après le dernier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi constBegin() et end().

[since 6.0] bool QByteArray::contains(QByteArrayView bv) const

Renvoie true si ce tableau d'octets contient une occurrence de la séquence d'octets vue par bv; sinon, renvoie false.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi indexOf() et count().

bool QByteArray::contains(char ch) const

Renvoie true si le tableau d'octets contient l'octet ch; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

[since 6.0] qsizetype QByteArray::count(QByteArrayView bv) const

Renvoie le nombre d'occurrences (pouvant se chevaucher) de la séquence d'octets visualisée par bv dans ce tableau d'octets.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi contains() et indexOf().

qsizetype QByteArray::count(char ch) const

Renvoie le nombre d'occurrences de l'octet ch dans le tableau d'octets.

Il s'agit d'une fonction surchargée.

Voir aussi contains() et indexOf().

[noexcept] QByteArray::const_reverse_iterator QByteArray::crbegin() const

Renvoie un itérateur inverse de style STL constant pointant sur le premier octet du tableau d'octets, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi begin(), rbegin(), et rend().

[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const

Renvoie un itérateur inverse de style STL constant pointant juste après le dernier octet du tableau d'octets, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi end(), rend(), et rbegin().

char *QByteArray::data()

Renvoie un pointeur sur les données stockées dans le tableau d'octets. Le pointeur peut être utilisé pour accéder et modifier les octets qui composent le tableau. Les données sont terminées par '\0', c'est-à-dire que le nombre d'octets auxquels vous pouvez accéder après le pointeur retourné est size() + 1, y compris le terminateur '\0'.

Exemple :

QByteArray ba("Hello world");
char *data = ba.data();
while (*data) {
    cout << "[" << *data << "]" << endl;
    ++data;
}

Le pointeur reste valide tant qu'il n'y a pas de détachement et que le site QByteArray n'est pas modifié.

Pour un accès en lecture seule, constData() est plus rapide car il n'y a jamais de copie profonde.

Cette fonction est surtout utile pour passer un tableau d'octets à une fonction qui accepte un const char *.

L'exemple suivant fait une copie du char* renvoyé par data(), mais il corrompra le tas et provoquera un crash car il n'alloue pas d'octet pour le '\0' à la fin :

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size()];
strcpy(data, text.data());
delete [] data;

Celui-ci alloue la quantité correcte d'espace :

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
delete [] data;

Remarque : un QByteArray peut stocker n'importe quelle valeur d'octet, y compris des '\0', mais la plupart des fonctions qui prennent des arguments char * supposent que les données se terminent au premier '\0' qu'elles rencontrent.

Voir également constData() et operator[]().

[noexcept] const char *QByteArray::data() const

Il s'agit d'une fonction surchargée.

QByteArray::iterator QByteArray::end()

Renvoie un itérateur de style STL pointant juste après le dernier octet du tableau d'octets.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi begin() et constEnd().

[noexcept] QByteArray::const_iterator QByteArray::end() const

Cette fonction surcharge QByteArray::end().

[since 6.0] bool QByteArray::endsWith(QByteArrayView bv) const

Renvoie true si ce tableau d'octets se termine par la séquence d'octets visualisée par bv; sinon, renvoie false.

Exemple :

QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
if (url.endsWith(".html"))
    {/*...*/}

Cette fonction a été introduite dans Qt 6.0.

Voir aussi startsWith() et last().

bool QByteArray::endsWith(char ch) const

Renvoie true si ce tableau d'octets se termine par l'octet ch; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

[since 6.1] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)

Supprime du tableau d'octets les caractères de l'intervalle semi-ouvert [ first, last ). Renvoie un itérateur vers le caractère référencé par last avant l'effacement.

Cette fonction a été introduite dans Qt 6.1.

[since 6.5] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator it)

Supprime le caractère indiqué par it du tableau d'octets. Renvoie un itérateur vers le caractère situé immédiatement après le caractère effacé.

QByteArray ba = "abcdefg";
auto it = ba.erase(ba.cbegin()); // ba is now "bcdefg" and it points to "b"

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.5.

QByteArray &QByteArray::fill(char ch, qsizetype size = -1)

Définit chaque octet du tableau d'octets à ch. Si size est différent de -1 (par défaut), le tableau d'octets est préalablement redimensionné à la taille size.

Exemple :

QByteArray ba("Istambul");
ba.fill('o');
// ba == "oooooooo"

ba.fill('X', 2);
// ba == "XX"

Voir aussi resize().

[since 6.0] QByteArray QByteArray::first(qsizetype n) const &

[since 6.0] QByteArray QByteArray::first(qsizetype n) &&

Renvoie les premiers n octets du tableau d'octets.

Remarque : le comportement est indéfini lorsque n < 0 ou n > size().

Exemple :

QByteArray x("Pineapple");
QByteArray y = x.first(4);
// y == "Pine"

Ces fonctions ont été introduites dans Qt 6.0.

Voir aussi last(), sliced(), startsWith(), chopped(), chop(), truncate() et slice().

[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

Renvoie une copie décodée du tableau Base64 base64, en utilisant les options définies par options. Si options contient IgnoreBase64DecodingErrors (par défaut), la validité de l'entrée n'est pas vérifiée ; les caractères invalides de l'entrée sont ignorés, ce qui permet au processus de décodage de continuer avec les caractères suivants. Si options contient AbortOnBase64DecodingErrors, le décodage s'arrête au premier caractère invalide.

Par exemple, l'algorithme utilisé pour décoder le code de base est le suivant

QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
text.data();            // returns "Qt is great!"

QByteArray::fromBase64("PHA+SGVsbG8/PC9wPg==", QByteArray::Base64Encoding); // returns "<p>Hello?</p>"
QByteArray::fromBase64("PHA-SGVsbG8_PC9wPg==", QByteArray::Base64UrlEncoding); // returns "<p>Hello?</p>"

L'algorithme utilisé pour décoder les données encodées en Base64 est défini dans la RFC 4648.

Renvoie les données décodées ou, si l'option AbortOnBase64DecodingErrors a été passée et que les données d'entrée étaient invalides, un tableau d'octets vide.

Remarque : la fonction fromBase64Encoding() est recommandée dans le nouveau code.

Voir également toBase64() et fromBase64Encoding().

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)

[static] QByteArray::FromBase64Result QByteArray::fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

Décode le tableau Base64 base64, en utilisant les options définies par options. Si options contient IgnoreBase64DecodingErrors (par défaut), la validité de l'entrée n'est pas vérifiée ; les caractères invalides de l'entrée sont ignorés, ce qui permet au processus de décodage de continuer avec les caractères suivants. Si options contient AbortOnBase64DecodingErrors, le décodage s'arrête au premier caractère invalide.

Par exemple, l'algorithme utilisé pour décoder le code de base est le suivant

void process(const QByteArray &);

if (auto result = QByteArray::fromBase64Encoding(encodedData))
    process(*result);

L'algorithme utilisé pour décoder les données encodées en Base64 est défini dans la RFC 4648.

Renvoie un objet QByteArrayFromBase64Result, contenant les données décodées et un drapeau indiquant si le décodage a réussi. Si l'option AbortOnBase64DecodingErrors a été passée et que les données d'entrée n'étaient pas valides, le contenu des données décodées n'est pas spécifié.

Voir aussi toBase64().

[static] QByteArray QByteArray::fromCFData(CFDataRef data)

Construit un nouveau QByteArray contenant une copie du CFData data.

Voir aussi fromRawCFData(), fromRawData(), toRawCFData() et toCFData().

[static, since 6.5] QByteArray QByteArray::fromEcmaUint8Array(emscripten::val uint8array)

Construit un nouveau QByteArray contenant une copie du Uint8Array uint8array.

Cette fonction transfère les données d'un tampon de données JavaScript - qui n'est pas adressable à partir du code C++ - vers la mémoire du tas appartenant à un QByteArray. Le Uint8Array peut être libéré une fois que cette fonction est retournée et qu'une copie a été faite.

L'argument uint8array doit être un emscripten::val référençant un objet Uint8Array, par exemple obtenu à partir d'une variable JavaScript globale :

emscripten::val uint8array = emscripten::val::global("g_uint8array");
QByteArray byteArray = QByteArray::fromEcmaUint8Array(uint8array);

Cette fonction renvoie une valeur nulle QByteArray si la taille du tableau Uint8 dépasse la capacité maximale de QByteArray, ou si l'argument uint8array n'est pas de type tableau Uint8.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi toEcmaUint8Array().

[static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)

Renvoie une copie décodée du tableau codé en hexadécimal hexEncoded. La validité de l'entrée n'est pas vérifiée ; les caractères non valides de l'entrée sont ignorés, ce qui permet au processus de décodage de continuer avec les caractères suivants.

Par exemple :

QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data();            // returns "Qt is great!"

Voir aussi toHex().

[static] QByteArray QByteArray::fromNSData(const NSData *data)

Construit un nouveau QByteArray contenant une copie de la NSData data.

Voir aussi fromRawNSData(), fromRawData(), toNSData() et toRawNSData().

[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')

Décode input à partir d'un codage en pourcentage de type URI/URL.

Retourne un tableau d'octets contenant le texte décodé. Le paramètre percent permet d'utiliser un caractère différent de '%' (par exemple, '_' ou '=') comme caractère d'échappement. Équivalent à l'entrée.percentDecoded(pourcentage).

Par exemple :

QByteArray texte = QByteArray::fromPercentEncoding("Qt%20is%20great%33") ;qDebug("%s", text.data());      // reports "Qt is great!"

Voir aussi percentDecoded().

[static, since 6.11] QByteArray QByteArray::fromPercentEncoding(QByteArray &&input, char percent = '%')

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.11.

[static] QByteArray QByteArray::fromRawCFData(CFDataRef data)

Construit un QByteArray qui utilise les octets du CFData data.

Les octets de data ne sont pas copiés.

L'appelant garantit que les données CFData ne seront ni supprimées ni modifiées tant que cet objet QByteArray existera.

Voir aussi fromCFData(), fromRawData(), toRawCFData() et toCFData().

[static] QByteArray QByteArray::fromRawData(const char *data, qsizetype size)

Construit un QByteArray qui utilise les premiers octets size du tableau data. Les octets ne sont pas copiés. Le QByteArray contiendra le pointeur data. L'appelant garantit que data ne sera ni supprimé ni modifié tant que ce QByteArray et ses copies existent et n'ont pas été modifiés. En d'autres termes, comme QByteArray est une classe implicitement partagée et que l'instance renvoyée par cette fonction contient le pointeur data, l'appelant ne doit pas supprimer data ou la modifier directement tant que QByteArray et ses copies existent. Cependant, QByteArray n'est pas propriétaire de data, de sorte que le destructeur QByteArray ne supprimera jamais le data brut, même si le dernier QByteArray faisant référence à data est détruit.

Toute tentative ultérieure de modification du contenu du tableau QByteArray retourné ou de toute copie effectuée à partir de celui-ci entraînera la création d'une copie profonde du tableau data avant de procéder à la modification. Cela garantit que le tableau data brut ne sera jamais modifié par QByteArray.

Voici un exemple de lecture de données à l'aide de QDataStream sur des données brutes en mémoire sans copier les données brutes dans QByteArray:

static const char mydata[] = {
    '\x00', '\x00', '\x03', '\x84', '\x78', '\x9c', '\x3b', '\x76',
    '\xec', '\x18', '\xc3', '\x31', '\x0a', '\xf1', '\xcc', '\x99',
    //...
    '\x6d', '\x5b'
};

QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
QDataStream in(&data, QIODevice::ReadOnly);
//...

Attention : Un tableau d'octets créé avec fromRawData() n' est pas '\0'-terminé, sauf si les données brutes contiennent un octet '\0' à la position size. Bien que cela n'ait pas d'importance pour QDataStream ou des fonctions comme indexOf(), passer le tableau d'octets à une fonction acceptant un const char * censé être '\0'-terminé échouera.

Voir aussi setRawData(), data(), constData(), nullTerminate() et nullTerminated().

[static] QByteArray QByteArray::fromRawNSData(const NSData *data)

Construit un QByteArray qui utilise les octets du NSData data.

Les octets de data ne sont pas copiés.

L'appelant garantit que la NSData ne sera ni supprimée ni modifiée tant que cet objet QByteArray existera.

Voir aussi fromNSData(), fromRawData(), toRawNSData() et toNSData().

[static] QByteArray QByteArray::fromStdString(const std::string &str)

Renvoie une copie de la chaîne str sous forme de QByteArray.

Voir aussi toStdString() et QString::fromStdString().

char &QByteArray::front()

Renvoie une référence au premier octet du tableau d'octets. Identique à operator[](0).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur un tableau d'octets vide constitue un comportement indéfini.

Voir aussi back(), at() et operator[]().

char QByteArray::front() const

Renvoie le premier octet du tableau d'octets. Identique à at(0).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur un tableau d'octets vide constitue un comportement indéfini.

Voir aussi back(), at() et operator[]().

[since 6.0] qsizetype QByteArray::indexOf(QByteArrayView bv, qsizetype from = 0) const

Renvoie la position d'index du début de la première occurrence de la séquence d'octets vue par bv dans ce tableau d'octets, en cherchant vers l'avant à partir de la position d'index from. Renvoie -1 si aucune correspondance n'est trouvée.

Exemple :

QByteArray x("sticky question");
QByteArrayView y("sti");
x.indexOf(y);               // returns 0
x.indexOf(y, 1);            // returns 10
x.indexOf(y, 10);           // returns 10
x.indexOf(y, 11);           // returns -1

Cette fonction a été introduite dans Qt 6.0.

Voir aussi lastIndexOf(), contains() et count().

qsizetype QByteArray::indexOf(char ch, qsizetype from = 0) const

Renvoie la position d'index du début de la première occurrence de l'octet ch dans ce tableau d'octets, en effectuant une recherche vers l'avant à partir de la position d'index from. Renvoie -1 si aucune correspondance n'est trouvée.

Exemple :

QByteArray ba("ABCBA");
ba.indexOf("B");            // returns 1
ba.indexOf("B", 1);         // returns 1
ba.indexOf("B", 2);         // returns 3
ba.indexOf("X");            // returns -1

Il s'agit d'une fonction surchargée.

Voir aussi lastIndexOf() et contains().

[since 6.0] QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data)

Insère data à la position d'index i et renvoie une référence à ce tableau d'octets.

Exemple :

QByteArray ba("Meal");
ba.insert(1, QByteArrayView("ontr"));
// ba == "Montreal"

Pour les grands tableaux d'octets, cette opération peut être lente(temps linéaire), car elle nécessite de déplacer tous les octets aux indices i et supérieurs d'au moins une position supplémentaire dans la mémoire.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi append(), prepend(), replace() et remove().

QByteArray &QByteArray::insert(qsizetype i, const QByteArray &data)

Insère data à la position d'index i et renvoie une référence à ce tableau d'octets.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Voir également append(), prepend(), replace() et remove().

QByteArray &QByteArray::insert(qsizetype i, const char *s)

Insère s à la position d'index i et renvoie une référence à ce tableau d'octets.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Cette fonction est équivalente à insert(i, QByteArrayView(s))

Voir aussi append(), prepend(), replace() et remove().

QByteArray &QByteArray::insert(qsizetype i, char ch)

Insère l'octet ch à la position d'index i dans le tableau d'octets.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::insert(qsizetype i, const char *data, qsizetype len)

Insère len octets, en commençant par data, à la position i dans le tableau d'octets.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::insert(qsizetype i, qsizetype count, char ch)

Insère count copies de l'octet ch à la position d'index i dans le tableau d'octets.

Ce tableau s'agrandit pour tenir compte de l'insertion. Si i est au-delà de la fin du tableau, le tableau est d'abord étendu avec des caractères d'espacement pour atteindre i.

Il s'agit d'une fonction surchargée.

[constexpr noexcept] bool QByteArray::isEmpty() const

Renvoie true si le tableau d'octets a une taille de 0 ; sinon, il renvoie false.

Exemple :

QByteArray().isEmpty();         // returns true
QByteArray("").isEmpty();       // returns true
QByteArray("abc").isEmpty();    // returns false

Voir aussi size().

bool QByteArray::isLower() const

Renvoie true si ce tableau d'octets est en minuscules, c'est-à-dire s'il est identique à son pliage toLower().

Notez que cela ne signifie pas que le tableau d'octets ne contient que des lettres minuscules, mais seulement qu'il ne contient pas de lettres majuscules ASCII.

Voir aussi isUpper() et toLower().

[noexcept] bool QByteArray::isNull() const

Renvoie true si ce tableau d'octets est nul ; sinon, il renvoie false.

Exemple :

QByteArray().isNull();          // returns true
QByteArray("").isNull();        // returns false
QByteArray("abc").isNull();     // returns false

Qt fait une distinction entre les tableaux d'octets nuls et les tableaux d'octets vides pour des raisons historiques. Pour la plupart des applications, l'important est de savoir si un tableau d'octets contient ou non des données, ce qui peut être déterminé à l'aide de isEmpty().

Voir aussi isEmpty().

bool QByteArray::isUpper() const

Renvoie true si ce tableau d'octets est en majuscules, c'est-à-dire s'il est identique à son pliage toUpper().

Notez que cela ne signifie pas que le tableau d'octets ne contient que des lettres majuscules, mais seulement qu'il ne contient pas de lettres ASCII minuscules.

Voir aussi isLower() et toUpper().

[noexcept, since 6.3] bool QByteArray::isValidUtf8() const

Renvoie true si ce tableau d'octets contient des données encodées UTF-8 valides, ou false dans le cas contraire.

Cette fonction a été introduite dans Qt 6.3.

[since 6.0] QByteArray QByteArray::last(qsizetype n) const &

[since 6.0] QByteArray QByteArray::last(qsizetype n) &&

Renvoie les derniers n octets du tableau d'octets.

Remarque : le comportement est indéfini lorsque n < 0 ou n > size().

Exemple :

QByteArray x("Pineapple");
QByteArray y = x.last(5);
// y == "apple"

Ces fonctions ont été introduites dans Qt 6.0.

Voir aussi first(), sliced(), endsWith(), chopped(), chop(), truncate() et slice().

[since 6.0] qsizetype QByteArray::lastIndexOf(QByteArrayView bv, qsizetype from) const

Renvoie la position d'index du début de la dernière occurrence de la séquence d'octets visualisée par bv dans ce tableau d'octets, en effectuant une recherche à rebours à partir de la position d'index from.

Si from vaut -1, la recherche commence au dernier caractère ; s'il vaut -2, à l'avant-dernier caractère, et ainsi de suite.

Retourne -1 si aucune correspondance n'est trouvée.

Exemple :

QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

Remarque : lors de la recherche d'une adresse bv de longueur 0, la correspondance à la fin des données est exclue de la recherche par une adresse from négative, même si l'on considère normalement que -1 effectue une recherche à partir de la fin du tableau d'octets : la correspondance à la fin se trouve après le dernier caractère, elle est donc exclue. Pour inclure une telle correspondance finale vide, il faut soit donner une valeur positive à from, soit omettre complètement le paramètre from.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi indexOf(), contains(), et count().

[since 6.2] qsizetype QByteArray::lastIndexOf(QByteArrayView bv) const

Renvoie la position d'index du début de la dernière occurrence de la séquence d'octets vue par bv dans ce tableau d'octets, en effectuant une recherche à rebours à partir de la fin du tableau d'octets. Retourne -1 si aucune correspondance n'est trouvée.

Exemple :

QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi indexOf(), contains(), et count().

qsizetype QByteArray::lastIndexOf(char ch, qsizetype from = -1) const

Renvoie la position d'index du début de la dernière occurrence de l'octet ch dans ce tableau d'octets, en effectuant une recherche à rebours à partir de la position d'index from. Si from est égal à -1 (valeur par défaut), la recherche commence au dernier octet (à l'index size() - 1). Retourne -1 si aucune correspondance n'est trouvée.

Exemple :

QByteArray ba("ABCBA");
ba.lastIndexOf("B");        // returns 3
ba.lastIndexOf("B", 3);     // returns 3
ba.lastIndexOf("B", 2);     // returns 1
ba.lastIndexOf("X");        // returns -1

Il s'agit d'une fonction surchargée.

Voir également indexOf() et contains().

QByteArray QByteArray::left(qsizetype len) const &

QByteArray QByteArray::left(qsizetype len) &&

Renvoie un tableau d'octets contenant les premiers len octets de ce tableau d'octets.

Si vous savez que len ne peut pas être hors limites, utilisez first() à la place dans votre nouveau code, car c'est plus rapide.

Le tableau d'octets entier est renvoyé si len est supérieur à size().

Retourne un QByteArray vide si len est plus petit que 0.

Voir aussi first(), last(), startsWith(), chopped(), chop() et truncate().

QByteArray QByteArray::leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const

Renvoie un tableau d'octets de taille width qui contient ce tableau d'octets complété par l'octet fill.

Si truncate est faux et que size() du tableau d'octets est supérieur à width, le tableau d'octets renvoyé est une copie de ce tableau d'octets.

Si truncate est vrai et que size() du tableau d'octets est supérieur à width, tous les octets d'une copie du tableau d'octets après la position width sont supprimés et la copie est renvoyée.

Exemple :

QByteArray x("apple");
QByteArray y = x.leftJustified(8, '.');   // y == "apple..."

Voir également rightJustified().

[constexpr noexcept] qsizetype QByteArray::length() const

Identique à size().

[constexpr noexcept, since 6.8] qsizetype QByteArray::max_size() const

[static constexpr noexcept, since 6.8] qsizetype QByteArray::maxSize()

Il renvoie le nombre maximum d'éléments que le tableau d'octets peut théoriquement contenir. En pratique, ce nombre peut être beaucoup plus petit, limité par la quantité de mémoire disponible dans le système.

Ces fonctions ont été introduites dans Qt 6.8.

QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) const &

QByteArray QByteArray::mid(qsizetype pos, qsizetype len = -1) &&

Renvoie un tableau d'octets contenant len octets de ce tableau d'octets, à partir de la position pos.

Si vous savez que pos et len ne peuvent pas être hors limites, utilisez sliced() à la place dans votre nouveau code, car c'est plus rapide.

Si len est -1 (par défaut), ou si pos + len >= size(), renvoie un tableau d'octets contenant tous les octets à partir de la position pos jusqu'à la fin du tableau d'octets.

Voir aussi first(), last(), sliced(), chopped(), chop(), truncate() et slice().

[since 6.10] QByteArray &QByteArray::nullTerminate()

Si les données de ce tableau d'octets ne sont pas null-terminées, cette méthode fera une copie profonde des données et les rendra null-terminées.

Un QByteArray est null-terminé par défaut, cependant dans certains cas (par exemple lors de l'utilisation de fromRawData()), les données ne se terminent pas nécessairement par un caractère \0, ce qui peut être un problème lors de l'appel de méthodes qui attendent une chaîne de caractères null-terminée (par exemple, l'API C).

Cette fonction a été introduite dans Qt 6.10.

Voir aussi nullTerminated(), fromRawData(), et setRawData().

[since 6.10] QByteArray QByteArray::nullTerminated() const &

[since 6.10] QByteArray QByteArray::nullTerminated() &&

Renvoie une copie de ce tableau d'octets dont la terminaison est toujours nulle. Voir nullTerminate().

Ces fonctions ont été introduites dans Qt 6.10.

Voir aussi nullTerminate(), fromRawData(), et setRawData().

[static] QByteArray QByteArray::number(int n, int base = 10)

Renvoie un tableau d'octets représentant le nombre entier n sous forme de texte.

Renvoie un tableau d'octets contenant une chaîne de caractères représentant n, en utilisant la valeur spécifiée base (dix par défaut). Les bases 2 à 36 sont prises en charge, en utilisant des lettres pour les chiffres au-delà de 9 : A est dix, B est onze et ainsi de suite.

Exemple :

int n = 63;
QByteArray::number(n);              // returns "63"
QByteArray::number(n, 16);          // returns "3f"
QByteArray::number(n, 16).toUpper();  // returns "3F"

Note : Le format du nombre n'est pas localisé ; la locale C par défaut est utilisée quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Voir également setNum() et toInt().

[static] QByteArray QByteArray::number(long n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toLong().

[static] QByteArray QByteArray::number(qlonglong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toLongLong().

[static] QByteArray QByteArray::number(qulonglong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toULongLong().

[static] QByteArray QByteArray::number(uint n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toUInt().

[static] QByteArray QByteArray::number(ulong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toULong().

[static] QByteArray QByteArray::number(double n, char format = 'g', int precision = 6)

Renvoie un tableau d'octets représentant le nombre à virgule flottante n sous forme de texte.

Renvoie un tableau d'octets contenant une chaîne de caractères représentant n, avec un format et un precision donnés, avec les mêmes significations que pour QLocale::toString(double, char, int). Par exemple, il s'agit d'une fonction surchargée :

QByteArray ba = QByteArray::number(12.3456, 'E', 3);
// ba == 1.235E+01

Il s'agit d'une fonction surchargée.

Voir aussi toDouble() et QLocale::FloatingPointPrecisionOption.

[since 6.4] QByteArray QByteArray::percentDecoded(char percent = '%') const &

Décode le codage en pourcentage de style URI/URL.

Retourne un tableau d'octets contenant le texte décodé. Le paramètre percent permet d'utiliser un caractère différent de '%' (par exemple, '_' ou '=') comme caractère d'échappement.

Par exemple :

QByteArray encoded("Qt%20is%20great%33");
QByteArray decoded = encoded.percentDecoded(); // Set to "Qt is great!"

Remarque : si l'entrée n'est pas valide (par exemple, une chaîne contenant la séquence "%G5", qui n'est pas un nombre hexadécimal valide), la sortie ne sera pas valide non plus. Exemple : la séquence "%G5" pourrait être décodée en "W".

Cette fonction a été introduite dans Qt 6.4.

Voir aussi toPercentEncoding() et QUrl::fromPercentEncoding().

[since 6.11] QByteArray QByteArray::percentDecoded(char percent = '%') &&

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.11.

QByteArray &QByteArray::prepend(QByteArrayView ba)

Prépare la vue du tableau d'octets ba à ce tableau d'octets et renvoie une référence à ce tableau d'octets.

Cette opération est généralement très rapide(temps constant), car QByteArray préaffecte de l'espace supplémentaire au début des données, ce qui lui permet de croître sans réaffecter l'ensemble du tableau à chaque fois.

Exemple :

QByteArray x("ship");
QByteArray y("air");
x.prepend(y);
// x == "airship"

C'est la même chose que insert(0, ba).

Voir également append() et insert().

QByteArray &QByteArray::prepend(char ch)

Prépare l'octet ch à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::prepend(const QByteArray &ba)

Ajoute ba à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::prepend(const char *str)

Ajoute la chaîne '\0'-terminée str à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::prepend(const char *str, qsizetype len)

Ajoute à ce tableau d'octets les octets de len commençant par str. Les octets ajoutés peuvent inclure des octets '\0'.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::prepend(qsizetype count, char ch)

Prépare count copies de l'octet ch à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

void QByteArray::push_back(const QByteArray &other)

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à append(other).

[since 6.0] void QByteArray::push_back(QByteArrayView str)

Identique à append(str).

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

void QByteArray::push_back(char ch)

Identique à append(ch).

Il s'agit d'une fonction surchargée.

void QByteArray::push_back(const char *str)

Identique à append(str).

Il s'agit d'une fonction surchargée.

void QByteArray::push_front(const QByteArray &other)

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à prepend(other).

[since 6.0] void QByteArray::push_front(QByteArrayView str)

Identique à prepend(str).

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

void QByteArray::push_front(char ch)

Identique à prepend(ch).

Il s'agit d'une fonction surchargée.

void QByteArray::push_front(const char *str)

Identique à prepend(str).

Il s'agit d'une fonction surchargée.

QByteArray::reverse_iterator QByteArray::rbegin()

Renvoie un itérateur inversé de style STL pointant sur le premier octet du tableau d'octets, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi begin(), crbegin(), et rend().

[noexcept] QByteArray::const_reverse_iterator QByteArray::rbegin() const

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::remove(qsizetype pos, qsizetype len)

Supprime len octets du tableau, à partir de la position d'index pos, et renvoie une référence au tableau.

Si pos est hors de portée, il ne se passe rien. Si pos est valide, mais que pos + len est plus grand que la taille du tableau, le tableau est tronqué à la position pos.

Exemple :

QByteArray ba("Montreal");
ba.remove(1, 4);
// ba == "Meal"

La suppression d'un élément préservera la capacité du tableau et ne réduira pas la quantité de mémoire allouée. Pour se débarrasser d'une capacité supplémentaire et libérer autant de mémoire que possible, appelez squeeze() après la dernière modification de la taille du tableau.

Voir également insert(), replace() et squeeze().

[since 6.5] QByteArray &QByteArray::removeAt(qsizetype pos)

Supprime le caractère à l'index pos. Si pos est hors limites (c'est-à-dire pos >= size()), cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

[since 6.5] QByteArray &QByteArray::removeFirst()

Supprime le premier caractère de ce tableau d'octets. Si le tableau d'octets est vide, cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

[since 6.1] template <typename Predicate> QByteArray &QByteArray::removeIf(Predicate pred)

Supprime du tableau d'octets tous les octets pour lesquels le prédicat pred renvoie la valeur true. Renvoie une référence au tableau d'octets.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi remove().

[since 6.5] QByteArray &QByteArray::removeLast()

Supprime le dernier caractère de ce tableau d'octets. Si le tableau d'octets est vide, cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

QByteArray::reverse_iterator QByteArray::rend()

Renvoie un itérateur inversé de style STL pointant juste après le dernier octet du tableau d'octets, dans l'ordre inverse.

Attention : L'itérateur retourné est invalidé en cas de détachement ou de modification de QByteArray.

Voir aussi end(), crend(), et rbegin().

[noexcept] QByteArray::const_reverse_iterator QByteArray::rend() const

Il s'agit d'une fonction surchargée.

QByteArray QByteArray::repeated(qsizetype times) const

Renvoie une copie de ce tableau d'octets répétant le nombre spécifié de times.

Si times est inférieur à 1, un tableau d'octets vide est renvoyé.

Exemple :

QByteArray ba("ab");
ba.repeated(4);             // returns "abababab"

QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, QByteArrayView after)

Remplace len octets à partir de la position d'index pos par le tableau d'octets after et renvoie une référence à ce tableau d'octets.

Exemple :

QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4, 3, y);
// x == "Say no!"

Voir aussi insert() et remove().

[since 6.0] QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after)

Remplace chaque occurrence du tableau d'octets before par le tableau d'octets after.

Exemple :

QByteArray ba("colour behaviour flavour neighbour");
ba.replace(QByteArray("ou"), QByteArray("o"));
// ba == "color behavior flavor neighbor"

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

QByteArray &QByteArray::replace(char before, QByteArrayView after)

Remplace chaque occurrence de l'octet before par le tableau d'octets after.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::replace(char before, char after)

Remplace chaque occurrence de l'octet before par l'octet after.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::replace(const char *before, qsizetype bsize, const char *after, qsizetype asize)

Remplace chaque occurrence des octets bsize commençant par before par les octets asize commençant par after. Les tailles des chaînes étant données par bsize et asize, elles peuvent contenir des octets "\0" et ne doivent pas nécessairement être terminées par "\0".

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::replace(qsizetype pos, qsizetype len, const char *after, qsizetype alen)

Remplace les octets len de la position d'index pos par des octets alen commençant à la position after. Les octets insérés peuvent inclure des octets '\0'.

Il s'agit d'une fonction surchargée.

void QByteArray::reserve(qsizetype size)

Tente d'allouer de la mémoire pour au moins size octets.

Si vous connaissez à l'avance la taille du tableau d'octets, vous pouvez appeler cette fonction, et si vous appelez souvent resize(), vous obtiendrez probablement de meilleures performances.

En cas de doute sur la quantité d'espace nécessaire, il est généralement préférable d'utiliser une borne supérieure comme size, ou une estimation élevée de la taille la plus probable, si une borne supérieure stricte serait beaucoup plus grande que cela. Si size est une sous-estimation, le tableau grandira selon les besoins une fois que la taille réservée sera dépassée, ce qui peut conduire à une allocation plus importante que ne l'aurait fait votre meilleure surestimation et ralentira l'opération qui la déclenche.

Attention : reserve() réserve de la mémoire mais ne modifie pas la taille du tableau d'octets. Accéder à des données au-delà de la fin du tableau d'octets est un comportement non défini. Si vous devez accéder à la mémoire au-delà de la fin actuelle du tableau, utilisez resize().

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire par QByteArray. En général, vous n'aurez que rarement besoin d'appeler cette fonction.

Voir aussi squeeze() et capacity().

void QByteArray::resize(qsizetype size)

Fixe la taille du tableau d'octets à size octets.

Si size est supérieur à la taille actuelle, le tableau d'octets est étendu pour atteindre size octets, les octets supplémentaires étant ajoutés à la fin. Les nouveaux octets ne sont pas initialisés.

Si size est inférieur à la taille actuelle, les octets au-delà de la position size sont exclus du tableau d'octets.

Remarque : si resize() augmente la capacité si nécessaire, il ne la réduit jamais. Pour se débarrasser d'une capacité excédentaire, utilisez squeeze().

Voir également size(), truncate() et squeeze().

[since 6.4] void QByteArray::resize(qsizetype newSize, char c)

Fixe la taille du tableau d'octets à newSize octets.

Si newSize est plus grand que la taille actuelle, le tableau d'octets est étendu pour atteindre newSize octets avec les octets supplémentaires ajoutés à la fin. Les nouveaux octets sont initialisés à c.

Si newSize est inférieur à la taille actuelle, les octets au-delà de la position newSize sont exclus du tableau d'octets.

Remarque : si resize() augmente la capacité si nécessaire, il ne la réduit jamais. Pour se débarrasser d'une capacité excédentaire, utilisez squeeze().

Cette fonction a été introduite dans Qt 6.4.

Voir aussi size(), truncate() et squeeze().

[since 6.8] void QByteArray::resizeForOverwrite(qsizetype size)

Redimensionne le tableau d'octets à size octets. Si la taille du tableau d'octets augmente, les nouveaux octets ne sont pas initialisés.

Le comportement est identique à celui de resize(size).

Cette fonction a été introduite dans Qt 6.8.

Voir aussi resize().

QByteArray QByteArray::right(qsizetype len) const &

Renvoie un tableau d'octets contenant les derniers len octets de ce tableau d'octets.

Si vous savez que len ne peut pas être hors limites, utilisez last() à la place dans votre nouveau code, car c'est plus rapide.

Le tableau d'octets entier est renvoyé si len est supérieur à size().

Retourne un QByteArray vide si len est plus petit que 0.

Voir aussi endsWith(), last(), first(), sliced(), chopped(), chop(), truncate(), et slice().

QByteArray QByteArray::rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const

Renvoie un tableau d'octets de taille width qui contient l'octet fill suivi de ce tableau d'octets.

Si truncate est faux et que la taille du tableau d'octets est supérieure à width, le tableau d'octets renvoyé est une copie de ce tableau d'octets.

Si truncate est vrai et que la taille du tableau d'octets est supérieure à width, le tableau d'octets résultant est tronqué à la position width.

Exemple :

QByteArray x("apple");
QByteArray y = x.rightJustified(8, '.');    // y == "...apple"

Voir aussi leftJustified().

QByteArray &QByteArray::setNum(int n, int base = 10)

Représenter le nombre entier n sous forme de texte.

Définit ce tableau d'octets en une chaîne représentant n en base base (dix par défaut) et renvoie une référence à ce tableau d'octets. Les bases 2 à 36 sont prises en charge, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Exemple :

QByteArray ba;
int n = 63;
ba.setNum(n);           // ba == "63"
ba.setNum(n, 16);       // ba == "3f"

Note : Le format du nombre n'est pas localisé ; la locale C par défaut est utilisée quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Voir également number() et toInt().

QByteArray &QByteArray::setNum(long n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toLong().

QByteArray &QByteArray::setNum(qlonglong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toLongLong().

QByteArray &QByteArray::setNum(qulonglong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toULongLong().

QByteArray &QByteArray::setNum(short n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toShort().

QByteArray &QByteArray::setNum(uint n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toUInt().

QByteArray &QByteArray::setNum(ulong n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toULong().

QByteArray &QByteArray::setNum(ushort n, int base = 10)

Il s'agit d'une fonction surchargée.

Voir aussi toUShort().

QByteArray &QByteArray::setNum(double n, char format = 'g', int precision = 6)

Représenter le nombre à virgule flottante n sous forme de texte.

Définit ce tableau d'octets en une chaîne de caractères représentant n, avec un format et un precision donnés (avec les mêmes significations que pour QString::number(double, char, int)), et renvoie une référence à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

Voir aussi toDouble() et QLocale::FloatingPointPrecisionOption.

QByteArray &QByteArray::setNum(float n, char format = 'g', int precision = 6)

Représenter le nombre à virgule flottante n sous forme de texte.

Définit ce tableau d'octets en une chaîne de caractères représentant n, avec un format et un precision donnés (avec les mêmes significations que pour QString::number(double, char, int)), et renvoie une référence à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

Voir aussi toFloat().

QByteArray &QByteArray::setRawData(const char *data, qsizetype size)

Réinitialise le site QByteArray pour qu'il utilise les premiers octets size du tableau data. Les octets ne sont pas copiés. Le site QByteArray contiendra le pointeur data. L'appelant garantit que data ne sera pas supprimé ou modifié tant que ce QByteArray et ses copies existent et n'ont pas été modifiés.

Cette fonction peut être utilisée à la place de fromRawData() pour réutiliser des objets QByteArray existants afin d'éviter les réallocations de mémoire.

Voir également fromRawData(), data(), constData(), nullTerminate() et nullTerminated().

void QByteArray::shrink_to_fit()

Cette fonction est fournie pour la compatibilité STL. Elle est équivalente à squeeze().

QByteArray QByteArray::simplified() const

Renvoie une copie de ce tableau d'octets dont les caractères d'espacement ont été supprimés au début et à la fin, et dans lequel chaque séquence de caractères d'espacement internes est remplacée par un espace unique.

Les caractères d'espacement sont ceux pour lesquels la fonction standard C++ isspace() renvoie true dans la locale C ; il s'agit des caractères ASCII tabulation '\t', saut de ligne '\n', retour chariot '\r', tabulation verticale '\v', saut de forme '\f', et espace ' '.

Exemple :

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.simplified();
// ba == "lots of whitespace";

Voir aussi trimmed(), QChar::SpecialCharacter, et Spacing Characters.

[constexpr noexcept] qsizetype QByteArray::size() const

Renvoie le nombre d'octets dans ce tableau d'octets.

Le dernier octet du tableau d'octets se trouve à la position size() - 1. En outre, QByteArray s'assure que l'octet à la position size() est toujours '\0', de sorte que vous puissiez utiliser la valeur de retour de data() et constData() comme arguments pour les fonctions qui attendent des chaînes terminées '\0'. Si l'objet QByteArray a été créé à partir d'un objet raw data qui n'incluait pas l'octet de terminaison '\0', QByteArray ne l'ajoute pas automatiquement, à moins qu'une copie profonde ne soit créée.

Exemple :

QByteArray ba("Hello");
qsizetype n = ba.size();    // n == 5
ba.data()[0];               // returns 'H'
ba.data()[4];               // returns 'o'
ba.data()[5];               // returns '\0'

Voir également isEmpty() et resize().

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos, qsizetype n)

Modifie ce tableau d'octets pour qu'il commence à la position pos, s'étend pour n octets, et renvoie une référence à ce tableau d'octets.

Remarque : le comportement est indéfini si pos < 0, n < 0 ou pos + n > size().

Exemple :

QByteArray x = "Five pineapples"_ba;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

Cette fonction a été introduite dans Qt 6.8.

Voir aussi sliced(), first(), last(), chopped(), chop() et truncate().

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos)

Modifie ce tableau d'octets pour qu'il commence à la position pos, en l'étendant jusqu'à sa fin, et renvoie une référence à ce tableau d'octets.

Remarque : le comportement est indéfini si pos < 0 ou pos > size().

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi sliced(), first(), last(), chopped(), chop() et truncate().

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) const &

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) &&

Renvoie un tableau d'octets contenant les n octets de cet objet à partir de la position pos.

Remarque : le comportement est indéfini lorsque pos < 0, n < 0 ou pos + n > size().

Exemple :

QByteArray x("Five pineapples");
QByteArray y = x.sliced(5, 4);     // y == "pine"
QByteArray z = x.sliced(5);        // z == "pineapples"

Ces fonctions ont été introduites dans Qt 6.0.

Voir aussi first(), last(), chopped(), chop(), truncate() et slice().

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) const &

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) &&

Renvoie un tableau d'octets contenant les octets commençant à la position pos dans cet objet et s'étendant jusqu'à la fin de cet objet.

Remarque : le comportement est indéfini lorsque pos < 0 ou pos > size().

Ces fonctions ont été introduites dans Qt 6.0.

Voir également first(), last(), chopped(), chop(), truncate() et slice().

QList<QByteArray> QByteArray::split(char sep) const

Divise le tableau d'octets en sous-ensembles à chaque fois que sep apparaît, et renvoie la liste de ces tableaux. Si sep ne correspond à aucun élément du tableau d'octets, split() renvoie une liste à un seul élément contenant ce tableau d'octets.

void QByteArray::squeeze()

Libère toute la mémoire qui n'est pas nécessaire pour stocker les données du tableau.

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire de QByteArray. En général, vous n'aurez que rarement besoin d'appeler cette fonction.

Voir aussi reserve() et capacity().

[since 6.0] bool QByteArray::startsWith(QByteArrayView bv) const

Renvoie true si ce tableau d'octets commence par la séquence d'octets visualisée par bv; sinon, renvoie false.

Exemple :

QByteArray url("ftp://ftp.qt-project.org/");
if (url.startsWith("ftp:"))
    {/*...*/}

Cette fonction a été introduite dans Qt 6.0.

Voir aussi endsWith() et first().

bool QByteArray::startsWith(char ch) const

Renvoie true si ce tableau d'octets commence par l'octet ch; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

[noexcept] void QByteArray::swap(QByteArray &other)

Échange ce tableau d'octets avec other. Cette opération est très rapide et n'échoue jamais.

QByteArray QByteArray::toBase64(QByteArray::Base64Options options = Base64Encoding) const

Renvoie une copie du tableau d'octets, encodé à l'aide des options options.

QByteArray text("Qt is great!");
text.toBase64();        // returns "UXQgaXMgZ3JlYXQh"

QByteArray hello("<p>Hello?</p>");
hello.toBase64(QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals);      // returns "PHA+SGVsbG8/PC9wPg"
hello.toBase64(QByteArray::Base64Encoding);                                       // returns "PHA+SGVsbG8/PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding);                                    // returns "PHA-SGVsbG8_PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals);   // returns "PHA-SGVsbG8_PC9wPg"

L'algorithme utilisé pour coder les données encodées en Base64 est défini dans la RFC 4648.

Voir aussi fromBase64().

CFDataRef QByteArray::toCFData() const

Crée un CFData à partir d'un QByteArray.

L'appelant est propriétaire de l'objet CFData et est responsable de sa libération.

Voir aussi toRawCFData(), fromCFData(), fromRawCFData() et fromRawData().

double QByteArray::toDouble(bool *ok = nullptr) const

Renvoie le tableau d'octets converti en une valeur double.

Renvoie une infinité si la conversion déborde ou 0.0 si la conversion échoue pour d'autres raisons (par exemple, un débordement).

Si ok n'est pas nullptr, l'échec est signalé par l'affectation de *ok à false, et la réussite par l'affectation de *ok à true.

QByteArray string("1234.56");
bool ok;
double a = string.toDouble(&ok);   // a == 1234.56, ok == true

string = "1234.56 Volt";
a = string.toDouble(&ok);             // a == 0, ok == false

Attention : Le contenu de QByteArray ne peut contenir que des caractères numériques valides, notamment le signe plus/moins, le caractère e utilisé dans la notation scientifique et le point décimal. L'inclusion de l'unité ou de caractères supplémentaires entraîne une erreur de conversion.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Cette fonction ignore les espaces blancs de début et de fin.

Voir aussi number().

[since 6.5] emscripten::val QByteArray::toEcmaUint8Array()

Crée un tableau Uint8 à partir d'un QByteArray.

Cette fonction transfère des données de la mémoire vive appartenant à QByteArray vers un tampon de données JavaScript. La fonction alloue et copie dans un ArrayBuffer, et renvoie une vue Uint8Array sur ce tampon.

Les objets JavaScript possèdent une copie des données, et cette QByteArray peut être supprimée en toute sécurité une fois la copie effectuée.

QByteArray byteArray = "test";
emscripten::val uint8array = byteArray.toEcmaUint8Array();

Cette fonction a été introduite dans Qt 6.5.

Voir aussi fromEcmaUint8Array().

float QByteArray::toFloat(bool *ok = nullptr) const

Renvoie le tableau d'octets converti en valeur float.

Renvoie une infinité si la conversion déborde ou 0.0 si la conversion échoue pour d'autres raisons (par exemple, un débordement).

Si ok n'est pas nullptr, l'échec est signalé par l'affectation de *ok à false, et la réussite par l'affectation de *ok à true.

QByteArray string("1234.56");
bool ok;
float a = string.toFloat(&ok);    // a == 1234.56, ok == true

string = "1234.56 Volt";
a = string.toFloat(&ok);              // a == 0, ok == false

Attention : Le contenu de QByteArray ne peut contenir que des caractères numériques valides, notamment le signe plus/moins, le caractère e utilisé dans la notation scientifique et le point décimal. L'inclusion de l'unité ou de caractères supplémentaires entraîne une erreur de conversion.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Cette fonction ignore les espaces blancs de début et de fin.

Voir aussi number().

QByteArray QByteArray::toHex(char separator = '\0') const

Renvoie une copie codée en hexadécimal du tableau d'octets.

Le codage hexadécimal utilise les chiffres de 0 à 9 et les lettres de a à f.

Si separator n'est pas '\0', le caractère de séparation est inséré entre les octets hexagonaux.

Exemple :

QByteArray macAddress = QByteArray::fromHex("123456abcdef");
macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
macAddress.toHex(0);   // returns "123456abcdef"

Voir aussi fromHex().

int QByteArray::toInt(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en int en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

QByteArray str("FF");
bool ok;
int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

long QByteArray::toLong(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en long int en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

QByteArray str("FF");
bool ok;
long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

qlonglong QByteArray::toLongLong(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en long long en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

QByteArray QByteArray::toLower() const

Renvoie une copie du tableau d'octets dans lequel chaque lettre ASCII majuscule a été convertie en minuscule.

Exemple :

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();
// y == "qt by the qt company"

Voir aussi isLower(), toUpper() et Character Case.

NSData *QByteArray::toNSData() const

Crée un NSData à partir d'un QByteArray.

L'objet NSData est libéré automatiquement.

Voir aussi fromNSData(), fromRawNSData(), fromRawData() et toRawNSData().

QByteArray QByteArray::toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const

Renvoie une copie codée en pourcentage de ce tableau d'octets, dans le style URI/URL. Le paramètre percent vous permet de remplacer le caractère '%' par défaut par un autre.

Par défaut, cette fonction encode tous les octets qui ne sont pas de l'un des types suivants :

ALPHA ("a" à "z" et "A" à "Z") / DIGIT (0 à 9) / "-" / "." / "_" / "~"

Pour empêcher l'encodage des octets, passez-les à exclude. Pour forcer l'encodage des octets, passez-les à include. Le caractère percent est toujours encodé.

Exemple :

QByteArray text = "{une chaîne de caractères douteuse?}";QByteArray ba = text.toPercentEncoding("{}", "s") ;qDebug("%s", ba.constData());
// imprime "{a fi%73hy %73tring%3F}"

Le codage hexadécimal utilise les chiffres de 0 à 9 et les lettres majuscules de A à F.

Voir aussi fromPercentEncoding() et QUrl::toPercentEncoding().

CFDataRef QByteArray::toRawCFData() const

Construit un CFData qui utilise les octets de QByteArray.

Les octets de QByteArray ne sont pas copiés.

L'appelant garantit que l'adresse QByteArray ne sera ni supprimée ni modifiée tant que cet objet CFData existera.

Voir aussi toCFData(), fromRawCFData(), fromCFData() et fromRawData().

NSData *QByteArray::toRawNSData() const

Construit un NSData qui utilise les octets de QByteArray.

Les octets de QByteArray ne sont pas copiés.

L'appelant garantit que le QByteArray ne sera ni supprimé ni modifié tant que cet objet NSData existera.

Voir aussi fromRawNSData(), fromNSData(), fromRawData() et toNSData().

short QByteArray::toShort(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en short en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

std::string QByteArray::toStdString() const

Renvoie un objet std::string avec les données contenues dans cette QByteArray.

Cet opérateur est surtout utile pour passer un QByteArray à une fonction qui accepte un objet std::string.

Voir aussi fromStdString() et QString::toStdString().

uint QByteArray::toUInt(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en unsigned int en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

ulong QByteArray::toULong(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en unsigned long int en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

qulonglong QByteArray::toULongLong(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en unsigned long long en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

ushort QByteArray::toUShort(bool *ok = nullptr, int base = 10) const

Renvoie le tableau d'octets converti en unsigned short en utilisant la base base, qui est dix par défaut. Les bases 0 et 2 à 36 sont supportées, en utilisant des lettres pour les chiffres au-delà de 9 ; A est dix, B est onze et ainsi de suite.

Si base vaut 0, la base est déterminée automatiquement à l'aide des règles suivantes : Si le tableau d'octets commence par "0x", il est supposé être hexadécimal (base 16) ; sinon, s'il commence par "0b", il est supposé être binaire (base 2) ; sinon, s'il commence par "0", il est supposé être octal (base 8) ; sinon, il est supposé être décimal.

Retourne 0 si la conversion échoue.

Si ok n'est pas nullptr, l'échec est signalé par la définition de *ok à false, et la réussite par la définition de *ok à true.

Remarque : la conversion du nombre est effectuée dans la locale C par défaut, quelle que soit la locale de l'utilisateur. Utilisez QLocale pour effectuer des conversions locales entre les nombres et les chaînes de caractères.

Note : La prise en charge du préfixe "0b" a été ajoutée dans Qt 6.4.

Voir aussi number().

QByteArray QByteArray::toUpper() const

Renvoie une copie du tableau d'octets dans lequel chaque lettre ASCII minuscule a été convertie en majuscule.

Exemple :

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toUpper();
// y == "QT BY THE QT COMPANY"

Voir aussi isUpper(), toLower() et Character Case.

QByteArray QByteArray::trimmed() const

Renvoie une copie de ce tableau d'octets dont les caractères d'espacement ont été supprimés au début et à la fin.

Les caractères d'espacement sont ceux pour lesquels la fonction standard C++ isspace() renvoie true dans la locale C ; il s'agit des caractères ASCII tabulation '\t', saut de ligne '\n', retour chariot '\r', tabulation verticale '\v', saut de forme '\f', et espace ' '.

Exemple :

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.trimmed();
// ba == "lots\t of\nwhitespace";

Contrairement à simplified(), trimmed() laisse l'espacement interne inchangé.

Voir également simplified(), QChar::SpecialCharacter, et Spacing Characters.

void QByteArray::truncate(qsizetype pos)

Tronque le tableau d'octets à la position d'index pos.

Si pos est au-delà de la fin du tableau, rien ne se passe.

Exemple :

QByteArray ba("Stockholm");
ba.truncate(5);             // ba == "Stock"

Voir aussi chop(), resize() et first().

QByteArray::operator const char *() const

QByteArray::operator const void *() const

Note : Utilisez constData() à la place dans le nouveau code.

Renvoie un pointeur sur les données stockées dans le tableau d'octets. Le pointeur peut être utilisé pour accéder aux octets qui composent le tableau. Les données sont terminées par '\0'.

Le pointeur reste valide tant qu'il n'y a pas de détachement et que le site QByteArray n'est pas modifié.

Cet opérateur est surtout utile pour passer un tableau d'octets à une fonction qui accepte un const char *.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_BYTEARRAY lors de la compilation de vos applications.

Remarque : un QByteArray peut stocker n'importe quelle valeur d'octet, y compris des '\0', mais la plupart des fonctions qui prennent des arguments char * supposent que les données se terminent au premier '\0' qu'elles rencontrent.

Voir également constData().

[noexcept, since 6.10] QByteArray::operator std::string_view() const

Convertit cet objet QByteArray en un objet std::string_view. La vue de la chaîne renvoyée couvrira la totalité du tableau d'octets.

Cette fonction a été introduite dans Qt 6.10.

QByteArray &QByteArray::operator+=(const QByteArray &ba)

Ajoute le tableau d'octets ba à la fin de ce tableau d'octets et renvoie une référence à ce tableau d'octets.

Exemple :

QByteArray x("free");
QByteArray y("dom");
x += y;
// x == "freedom"

Remarque : QByteArray est une classe implicitement partagée. Par conséquent, si vous ajoutez un tableau d'octets vide, le tableau d'octets partagera simplement les données contenues dans ba. Dans ce cas, aucune copie de données n'est effectuée, ce qui prend un temps constant. Si une instance partagée est modifiée, elle sera copiée (copy-on-write), ce qui prend un temps linéaire.

Si le tableau d'octets auquel il est ajouté n'est pas vide, une copie profonde des données est effectuée, en un temps linéaire.

Cette opération ne souffre généralement pas de surcharge d'allocation, car QByteArray préaffecte de l'espace supplémentaire à la fin des données afin qu'elles puissent croître sans avoir à être réaffectées à chaque opération d'ajout.

Voir également append() et prepend().

QByteArray &QByteArray::operator+=(char ch)

Ajoute l'octet ch à la fin de ce tableau d'octets et renvoie une référence à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray &QByteArray::operator+=(const char *str)

Ajoute la chaîne '\0'-terminée str à la fin de ce tableau d'octets et renvoie une référence à ce tableau d'octets.

Il s'agit d'une fonction surchargée.

[noexcept] QByteArray &QByteArray::operator=(QByteArray &&other)

Move-assigne other à cette instance QByteArray.

[noexcept] QByteArray &QByteArray::operator=(const QByteArray &other)

Affecte other à ce tableau d'octets et renvoie une référence à ce tableau d'octets.

QByteArray &QByteArray::operator=(const char *str)

Affecte str à ce tableau d'octets.

str est supposé pointer vers une chaîne de caractères à terminaison nulle, et sa longueur est déterminée dynamiquement.

Il s'agit d'une fonction surchargée.

char &QByteArray::operator[](qsizetype i)

Renvoie l'octet à la position d'index i sous la forme d'une référence modifiable.

i doit être une position d'index valide dans le tableau d'octets (c'est-à-dire 0 <= i < size()).

Exemple :

QByteArray ba("Hello, world");
cout << ba[0]; // prints H
ba[7] = 'W';
// ba == "Hello, World"

Voir aussi at().

char QByteArray::operator[](qsizetype i) const

Identique à at(i).

Il s'agit d'une fonction surchargée.

Non-membres apparentés

[since 6.1] template <typename T> qsizetype erase(QByteArray &ba, const T &t)

Supprime du tableau d'octets ba tous les éléments dont la comparaison est égale à t. Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi erase_if.

[since 6.1] template <typename Predicate> qsizetype erase_if(QByteArray &ba, Predicate pred)

Supprime du tableau d'octets ba tous les éléments pour lesquels le prédicat pred renvoie la valeur "true". Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi erase.

quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)

Renvoie la somme de contrôle CRC-16 de data.

La somme de contrôle est indépendante de l'ordre des octets (endianness) et sera calculée selon l'algorithme publié dans standard. Par défaut, l'algorithme publié dans ISO 3309 (Qt::ChecksumIso3309) est utilisé.

Note : Cette fonction est une implémentation de l'algorithme CRC-16-CCITT qui préserve le cache de 16 bits (table de 16 entrées).

QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)

Compresse le tableau d'octets data et renvoie les données compressées dans un nouveau tableau d'octets.

Le paramètre compressionLevel indique le niveau de compression à utiliser. Les valeurs valides sont comprises entre 0 et 9, 9 correspondant à la plus grande compression (c'est-à-dire des données compressées plus petites) au prix de l'utilisation d'un algorithme plus lent. Des valeurs plus petites (8, 7, ..., 1) permettent d'obtenir une compression de plus en plus faible à des vitesses légèrement plus élevées. La valeur 0 correspond à aucune compression. La valeur par défaut est -1, ce qui correspond à la compression par défaut de zlib.

Voir aussi qUncompress(const QByteArray &data).

QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)

Compresse le premier nbytes de data au niveau de compression compressionLevel et renvoie les données compressées dans un nouveau tableau d'octets.

Il s'agit d'une fonction surchargée.

QByteArray qUncompress(const QByteArray &data)

Décompresse le tableau d'octets data et renvoie un nouveau tableau d'octets contenant les données non compressées.

Retourne un QByteArray vide si les données d'entrée sont corrompues.

Cette fonction décompressera les données compressées avec qCompress() à partir de cette version de Qt et de toute version antérieure de Qt, jusqu'à Qt 3.1 lorsque cette fonctionnalité a été ajoutée.

Note : Si vous voulez utiliser cette fonction pour décompresser des données externes qui ont été compressées avec zlib, vous devez d'abord ajouter un en-tête de quatre octets au tableau d'octets contenant les données. L'en-tête doit contenir la longueur attendue (en octets) des données non compressées, exprimée sous la forme d'un entier 32 bits non signé, big-endian. Ce nombre n'est qu'une indication de la taille initiale du tampon de sortie. Si la taille indiquée est trop petite pour contenir le résultat, la taille du tampon de sortie sera augmentée jusqu'à ce que la sortie soit suffisante ou que le système manque de mémoire. Ainsi, malgré l'en-tête 32 bits, cette fonction, sur les plates-formes 64 bits, peut produire plus de 4 Go de résultats.

Note : Dans les versions de Qt antérieures à Qt 6.5, plus de 2Go de données ne fonctionnaient pas de manière fiable ; dans les versions de Qt antérieures à Qt 6.0, pas du tout.

Voir aussi qCompress().

QByteArray qUncompress(const uchar *data, qsizetype nbytes)

Décompresse le premier nbytes de data et renvoie un nouveau tableau d'octets contenant les données non compressées.

Il s'agit d'une fonction surchargée.

int qstrcmp(const char *str1, const char *str2)

Une fonction strcmp() sûre.

Compare str1 et str2. Elle renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.

Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l'une d'elles est nullptr, elle est considérée comme inférieure à l'autre (même si l'autre est une chaîne vide).

Voir également qstrncmp(), qstricmp(), qstrnicmp(), Character Case et QByteArray::compare().

char *qstrcpy(char *dst, const char *src)

Copie tous les caractères jusqu'à '\0' inclus de src dans dst et renvoie un pointeur sur dst. Si src est nullptr, elle renvoie immédiatement nullptr.

Cette fonction suppose que dst est suffisamment grand pour contenir le contenu de src.

Remarque : si dst et src se chevauchent, le comportement est indéfini.

Voir aussi qstrncpy().

char *qstrdup(const char *src)

Renvoie une chaîne dupliquée.

Alloue de l'espace pour une copie de src, la copie et renvoie un pointeur sur la copie. Si src est nullptr, il renvoie immédiatement nullptr.

La propriété est transmise à l'appelant, de sorte que la chaîne renvoyée doit être supprimée à l'aide de delete[].

int qstricmp(const char *str1, const char *str2)

Une fonction stricmp() sûre.

Compare str1 et str2, en ignorant les différences dans le cas de caractères ASCII.

Elle renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.

Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l'une d'elles est nullptr, elle est considérée comme inférieure à l'autre (même si l'autre est une chaîne vide).

Voir également qstrcmp(), qstrncmp(), qstrnicmp(), Character Case et QByteArray::compare().

size_t qstrlen(const char *str)

Une fonction sûre strlen().

Renvoie le nombre de caractères qui précèdent la terminaison '\0', ou 0 si str est nullptr.

Voir aussi qstrnlen().

int qstrncmp(const char *str1, const char *str2, size_t len)

Une fonction strncmp() sûre.

Compare au maximum len octets de str1 et str2.

Elle renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.

Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l'une d'elles est nullptr, elle est considérée comme inférieure à l'autre (même si l'autre est une chaîne vide ou si len est 0).

Voir également qstrcmp(), qstricmp(), qstrnicmp(), Character Case et QByteArray::compare().

char *qstrncpy(char *dst, const char *src, size_t len)

Une fonction strncpy() sûre.

Copie au maximum len octets de src (en s'arrêtant à len ou au '\0' de fin, selon ce qui arrive en premier) dans dst. Garantit que dst est '\0'-terminé, sauf si dst est nullptr ou len est 0. Si src est nullptr, renvoie nullptr, sinon renvoie dst.

Cette fonction suppose que dst comporte au moins len caractères.

Remarque : si dst et src se chevauchent, le comportement est indéfini.

Remarque : contrairement à strncpy(), cette fonction n' écrit pas '\0' sur tous les octets len de dst, mais s'arrête après le '\0' de fin. En ce sens, elle est similaire à strncpy_s() en C11.

Voir aussi qstrcpy().

int qstrnicmp(const char *str1, const char *str2, size_t len)

Une fonction strnicmp() sûre.

Compare au maximum len octets de str1 et str2, en ignorant les différences dans le cas de caractères ASCII.

Renvoie une valeur négative si str1 est inférieur à str2, 0 si str1 est égal à str2 ou une valeur positive si str1 est supérieur à str2.

Si les deux chaînes sont nullptr, elles sont considérées comme égales ; sinon, si l'une d'elles est nullptr, elle est considérée comme inférieure à l'autre (même si l'autre est une chaîne vide ou si len vaut 0).

Voir également qstrcmp(), qstrncmp(), qstricmp(), Character Case et QByteArray::compare().

size_t qstrnlen(const char *str, size_t maxlen)

Une fonction sûre strnlen().

Renvoie le nombre de caractères qui précèdent le '\0' de fin, mais au plus maxlen. Si str est nullptr, elle renvoie 0.

Voir aussi qstrlen().

[noexcept] bool operator!=(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs n'est pas égal au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator!=(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs n'est pas égal à la chaîne de caractères terminée '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator!=(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs n'est pas égale à un tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept, since 6.4] QByteArray operator""_ba(const char *str, size_t size)

Opérateur littéral qui crée un QByteArray à partir des premiers caractères size de la chaîne de caractères littérale str.

Le QByteArray est créé au moment de la compilation et les données de la chaîne générée sont stockées dans le segment en lecture seule du fichier objet compilé. Les données littérales dupliquées peuvent partager la même mémoire en lecture seule. Cette fonctionnalité est interchangeable avec QByteArrayLiteral, mais permet d'économiser de la frappe lorsque de nombreuses chaînes de caractères littérales sont présentes dans le code.

Le code suivant crée un QByteArray:

using namespace Qt::StringLiterals;

auto str = "hello"_ba;

Cette fonction a été introduite dans Qt 6.4.

Voir aussi Qt::Literals::StringLiterals.

QByteArray operator+(char a1, const QByteArray &a2)

Renvoie un tableau d'octets qui est le résultat de la concaténation de l'octet a1 et du tableau d'octets a2.

Il s'agit d'une fonction surchargée.

[since 6.9] QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)

[since 6.9] QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)

Renvoie un tableau d'octets qui est le résultat de la concaténation de lhs et rhs.

Ces fonctions ont été introduites dans Qt 6.9.

Voir aussi QByteArray::operator+=().

QByteArray operator+(const QByteArray &a1, char a2)

Renvoie un tableau d'octets qui est le résultat de la concaténation du tableau d'octets a1 et de l'octet a2.

Il s'agit d'une fonction surchargée.

QByteArray operator+(const QByteArray &a1, const QByteArray &a2)

Renvoie un tableau d'octets qui est le résultat de la concaténation du tableau d'octets a1 et du tableau d'octets a2.

Voir aussi QByteArray::operator+=().

QByteArray operator+(const QByteArray &a1, const char *a2)

Renvoie un tableau d'octets qui est le résultat de la concaténation du tableau d'octets a1 et de la chaîne de caractères terminée par '\0'a2.

Il s'agit d'une fonction surchargée.

QByteArray operator+(const char *a1, const QByteArray &a2)

Renvoie un tableau d'octets qui est le résultat de la concaténation de la chaîne de caractères terminée par '\0'a1 et du tableau d'octets a2.

Il s'agit d'une fonction surchargée.

[noexcept] bool operator<(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement inférieur au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator<(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement inférieur à la chaîne terminée '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator<(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs est lexicalement inférieure au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

QDataStream &operator<<(QDataStream &out, const QByteArray &ba)

Écrit le tableau d'octets ba dans le flux out et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

[noexcept] bool operator<=(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement inférieur ou égal au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator<=(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement inférieur ou égal à la chaîne terminée '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator<=(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs est lexicalement inférieure ou égale au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator==(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs est égal au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator==(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs est égal à la chaîne de caractères terminée '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator==(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs est égale à un tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement plus grand que le tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement plus grand que la chaîne de caractères terminée par '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs est lexicalement plus grande que le tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>=(const QByteArray &lhs, const QByteArray &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement supérieur ou égal au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>=(const QByteArray &lhs, const char *const &rhs)

Renvoie true si le tableau d'octets lhs est lexicalement supérieur ou égal à la chaîne de caractères terminée '\0'rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

[noexcept] bool operator>=(const char *const &lhs, const QByteArray &rhs)

Renvoie true si la chaîne de caractères terminée par '\0'lhs est lexicalement supérieure ou égale au tableau d'octets rhs; sinon, renvoie false.

Il s'agit d'une fonction surchargée.

Voir aussi QByteArray::compare().

QDataStream &operator>>(QDataStream &in, QByteArray &ba)

Lit un tableau d'octets dans ba à partir du flux in et renvoie une référence au flux.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

Documentation sur les macros

QByteArrayLiteral(ba)

La macro génère les données d'un QByteArray à partir de la chaîne littérale ba au moment de la compilation. La création d'un QByteArray à partir de cette chaîne est gratuite dans ce cas, et les données du tableau d'octets généré sont stockées dans le segment en lecture seule du fichier objet compilé.

Par exemple :

QByteArray ba = QByteArrayLiteral("byte array contents");

L'utilisation de QByteArrayLiteral au lieu d'un littéral de chaîne C++ simple entre guillemets doubles permet d'accélérer considérablement la création d'instances QByteArray à partir de données connues au moment de la compilation.

Voir également QStringLiteral.

QT_NO_CAST_FROM_BYTEARRAY

Désactive les conversions automatiques de QByteArray en const char * ou const void *.

Voir aussi QT_NO_CAST_TO_ASCII et QT_NO_CAST_FROM_ASCII.

[since 6.8] QT_NO_QSNPRINTF

La définition de cette macro supprime la disponibilité des fonctions qsnprintf() et qvsnprintf(). Consultez la documentation de ces fonctions pour savoir pourquoi vous souhaitez les désactiver.

Cette macro a été introduite dans Qt 6.8.

Voir aussi qsnprintf() et qvsnprintf().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.