En esta página

QByteArray Class

La clase QByteArray proporciona una matriz de bytes. Más...

Cabecera: #include <QByteArray>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es fuertemente comparable.

Esta clase es fuertemente comparable con const char *.

Esta clase es fuertemente comparable con QChar, char16_t, QString, QStringView, QLatin1StringView, y QUtf8StringView.

Cuando se compara con los tipos string, el contenido se interpreta como UTF-8.

Nota: Todas las funciones de esta clase son reentrantes.

Tipos públicos

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

Funciones públicas

QByteArray()
(since 6.8) QByteArray(QByteArrayView v)
QByteArray(const char *data, qsizetype tamaño = -1)
QByteArray(qsizetype tamaño, Qt::Inicialización)
QByteArray(qsizetype tamaño, char ch)
QByteArray(const QByteArray &other)
QByteArray(QByteArray &&otro)
~QByteArray()
QByteArray &append(const QByteArray &ba)
QByteArray &append(QByteArrayView datos)
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::iterador 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::iterador end()
QByteArray::const_iterator end() const
(since 6.0) bool endsWith(QByteArrayView bv) const
bool endsWith(char ch) const
(since 6.1) QByteArray::iterador erase(QByteArray::const_iterator first, QByteArray::const_iterator last)
(since 6.5) QByteArray::iterador erase(QByteArray::const_iterator it)
QByteArray &fill(char ch, qsizetype tamaño = -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 porcentaje = '%') 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 &other)
(since 6.0) void push_back(QByteArrayView str)
void push_back(char ch)
void push_back(const char *str)
void push_front(const QByteArray &other)
(since 6.0) void push_front(QByteArrayView str)
void push_front(char ch)
void push_front(const char *str)
QByteArray::iterador_inverso rbegin()
QByteArray::const_iterador_inverso 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(Predicado pred)
(since 6.5) QByteArray &removeLast()
QByteArray::iterador_inverso rend()
QByteArray::const_iterador_inverso rend() const
QByteArray repeated(qsizetype times) const
QByteArray &replace(qsizetype pos, qsizetype len, QByteArrayView after)
(since 6.0) QByteArray &replace(QByteArrayView before, QByteArrayView after)
QByteArray &replace(char antes, QByteArrayView después)
QByteArray &replace(char antes, char despué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 tamaño)
(since 6.4) void resize(qsizetype nuevoTamaño, char c)
(since 6.8) void resizeForOverwrite(qsizetype tamaño)
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, formato char = 'g', precisión int = 6)
QByteArray &setRawData(const char *data, qsizetype size)
void 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 swap(QByteArray &other)
QByteArray toBase64(QByteArray::Base64Options options = Base64Encoding) const
CFDataRef toCFData() const
doble 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
short toShort(bool *ok = nullptr, int base = 10) const
std::cadena 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 &&otros)
QByteArray &operator=(const QByteArray &otro)
QByteArray &operator=(const char *str)
char &operator[](qsizetype i)
char operator[](qsizetype i) const

Miembros públicos estáticos

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

Descripción detallada

QByteArray puede utilizarse para almacenar tanto bytes en bruto (incluyendo '\0's) como cadenas tradicionales de 8 bits '\0'-terminadas. Utilizar QByteArray es mucho más cómodo que utilizar const char *. Entre bastidores, siempre se asegura de que los datos vayan seguidos de un terminador '\0', y utiliza la compartición implícita (copy-on-write) para reducir el uso de memoria y evitar la copia innecesaria de datos.

Además de QByteArray, Qt también proporciona la clase QString para almacenar datos de cadena. Para la mayoría de los propósitos, QString es la clase que quieres usar. Entiende su contenido como texto Unicode (codificado usando UTF-16) mientras que QByteArray pretende evitar suposiciones sobre la codificación o semántica de los bytes que almacena (aparte de algunos casos heredados en los que usa ASCII). Además, QString se utiliza en toda la API de Qt. Los dos casos principales en los que QByteArray es apropiado son cuando se necesita almacenar datos binarios en bruto, y cuando la conservación de memoria es crítica (por ejemplo, con Qt for Embedded Linux).

Una forma de inicializar un QByteArray es simplemente pasar un const char * a su constructor. Por ejemplo, el siguiente código crea un array de bytes de tamaño 5 que contiene los datos "Hola":

QByteArray ba("Hello");

Aunque size() es 5, la matriz de bytes también mantiene un byte extra '\0' al final, de modo que si se utiliza una función que pide un puntero a los datos subyacentes (por ejemplo, una llamada a data()), se garantiza que los datos apuntados son '\0'-terminados.

QByteArray realiza una copia en profundidad de los datos de const char *, para que puedas modificarlos posteriormente sin experimentar efectos secundarios. (Si, por ejemplo por razones de rendimiento, no quieres hacer una copia profunda de los datos, utiliza QByteArray::fromRawData() en su lugar).

Otro enfoque es establecer el tamaño del array utilizando resize() e inicializar los datos byte a byte. QByteArray utiliza índices basados en 0, igual que las matrices de C++. Para acceder al byte en una posición de índice concreta, puedes utilizar operator[](). En matrices de bytes no-const, operator[]() devuelve una referencia a un byte que puede utilizarse en el lado izquierdo de una asignación. Por ejemplo:

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

Para el acceso de sólo lectura, una sintaxis alternativa es utilizar 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() puede ser más rápido que operator[](), porque nunca provoca una copia profunda.

Para extraer muchos bytes a la vez, utilice first(), last(), o sliced().

Un QByteArray puede incrustar bytes '\0'. La función size() siempre devuelve el tamaño de toda la matriz, incluyendo los bytes '\0' incrustados, pero excluyendo la terminación '\0' añadida por QByteArray. Por ejemplo:

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 desea obtener la longitud de los datos hasta y excluyendo el primer '\0' byte, llame a qstrlen() en la matriz de bytes.

Después de una llamada a resize(), los bytes recién asignados tienen valores indefinidos. Para asignar a todos los bytes un valor determinado, llame a fill().

Para obtener un puntero a los bytes reales, llame a data() o constData(). Estas funciones devuelven un puntero al principio de los datos. Se garantiza que el puntero seguirá siendo válido hasta que se llame a una función no-const sobre el QByteArray. También se garantiza que los datos terminan con un byte '\0' a menos que el QByteArray se haya creado a partir de raw data. Este byte '\0' es proporcionado automáticamente por QByteArray y no se cuenta en size().

QByteArray proporciona las siguientes funciones básicas para modificar los datos de byte: append(), prepend(), insert(), replace(), y remove(). Por ejemplo:

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

En el ejemplo anterior, los dos primeros argumentos de la función replace() son la posición desde la que empezar a sustituir y el número de bytes que deben sustituirse.

Cuando las funciones de modificación de datos aumentan el tamaño del array, pueden provocar una reasignación de memoria para el objeto QByteArray. Cuando esto ocurre, QByteArray se expande más de lo que necesita inmediatamente para tener espacio para futuras expansiones sin reasignación hasta que el tamaño del array haya aumentado mucho.

Las funciones insert(), remove() y, cuando se sustituye una submatriz por otra de diferente tamaño, replace() pueden ser lentas(tiempo lineal) para matrices grandes, porque requieren mover muchos bytes de la matriz al menos una posición en memoria.

Si estás construyendo un QByteArray gradualmente y sabes de antemano aproximadamente cuántos bytes contendrá el QByteArray, puedes llamar a reserve(), pidiendo a QByteArray que preasigne una cierta cantidad de memoria. También puedes llamar a capacity() para averiguar cuánta memoria tiene realmente asignada QByteArray.

Ten en cuenta que el uso de operadores y funciones no-const puede hacer que QByteArray realice una copia profunda de los datos, debido a la compartición implícita.

QByteArray proporciona iteradores al estilo STL (QByteArray::const_iterator y QByteArray::iterator). En la práctica, los iteradores son útiles cuando se trabaja con algoritmos genéricos proporcionados por la biblioteca estándar de C++.

Nota: Los iteradores y las referencias a elementos individuales de QByteArray están sujetos a problemas de estabilidad. A menudo se invalidan cuando se llama a una operación de modificación de QByteArray (por ejemplo, insert() o remove()). Cuando se requiera estabilidad y una funcionalidad similar a la de un iterador, se deben utilizar índices en lugar de iteradores, ya que no están ligados al estado interno de QByteArray y, por tanto, no se invalidan.

Nota: No se puede confiar en que los iteradores sobre un QByteArray, y las referencias a bytes individuales dentro de uno, sigan siendo válidos cuando se llama a cualquier método no-const del QByteArray. El acceso a un iterador o referencia de este tipo después de la llamada a un método no-const conduce a un comportamiento indefinido. Cuando se requiera estabilidad para una funcionalidad similar a la de los iteradores, se deben utilizar índices en lugar de iteradores, ya que no están ligados al estado interno de QByteArray y, por tanto, no se invalidan.

Si quieres encontrar todas las apariciones de un byte o secuencia de bytes en particular en un QByteArray, utiliza indexOf() o lastIndexOf(). El primero busca hacia delante a partir de una posición de índice dada, el segundo busca hacia atrás. Ambos devuelven la posición índice de la secuencia de bytes si la encuentran; en caso contrario, devuelven -1. Por ejemplo, éste es un bucle típico que busca todas las apariciones de una cadena determinada:

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 simplemente desea comprobar si un QByteArray contiene una secuencia de bytes determinada, utilice contains(). Si desea averiguar cuántas veces aparece una secuencia de bytes determinada en la matriz de bytes, utilice count(). Si desea sustituir todas las apariciones de un valor determinado por otro, utilice una de las sobrecargas de dos parámetros replace().

QByteArrays pueden compararse utilizando operadores sobrecargados como operator<(), operator<=(), operator==(), operator>=(), etc. La comparación se basa exclusivamente en los valores numéricos de los bytes y es muy rápida, pero no es lo que esperaría un humano. QString::localeAwareCompare() es una mejor opción para ordenar cadenas de interfaz de usuario.

Por razones históricas, QByteArray distingue entre una matriz de bytes nula y una matriz de bytes vacía. Una matriz de bytes nula es una matriz de bytes que se inicializa utilizando el constructor por defecto de QByteArray o pasando (const char *)0 al constructor. Una matriz de bytes vacía es cualquier matriz de bytes con tamaño 0. Una matriz de bytes nula siempre está vacía, pero una matriz de bytes vacía no es necesariamente nula:

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

Todas las funciones excepto isNull() tratan las matrices de bytes nulas como matrices de bytes vacías. Por ejemplo, data() devuelve un puntero válido(no nullptr) a un byte '\0' para una matriz de bytes nula y QByteArray() compara igual a QByteArray(""). Se recomienda utilizar siempre isEmpty() y evitar isNull().

Tamaño máximo y condiciones de falta de memoria

El tamaño máximo de QByteArray depende de la arquitectura. La mayoría de los sistemas de 64 bits pueden asignar más de 2 GB de memoria, con un límite típico de 2^63 bytes. El valor real también depende de la sobrecarga necesaria para gestionar el bloque de datos. Como resultado, se puede esperar un tamaño máximo de 2 GB menos la sobrecarga en plataformas de 32 bits, y de 2^63 bytes menos la sobrecarga en plataformas de 64 bits. El número de elementos que se pueden almacenar en un QByteArray es este tamaño máximo.

Cuando falla la asignación de memoria, QByteArray lanza una excepción std::bad_alloc si la aplicación está siendo compilada con soporte para excepciones. Las condiciones de falta de memoria en los contenedores Qt son el único caso en el que Qt lanzará excepciones. Si las excepciones están deshabilitadas, entonces quedarse sin memoria es un comportamiento indefinido.

Tenga en cuenta que el sistema operativo puede imponer límites adicionales a las aplicaciones que tengan mucha memoria asignada, especialmente bloques grandes y contiguos. Tales consideraciones, la configuración de tal comportamiento o cualquier mitigación están fuera del alcance de la API QByteArray.

Funciones C locale y ASCII

QByteArray generalmente maneja los datos como bytes, sin presumir ninguna semántica; cuando presume semántica, utiliza la configuración regional de C y la codificación ASCII. Las codificaciones Unicode estándar son soportadas por QString, otras codificaciones pueden ser soportadas usando QStringEncoder y QStringDecoder para convertir a Unicode. Para la interpretación específica de la configuración regional del texto, utilice QLocale o QString.

Cadenas C

Las cadenas C tradicionales, también conocidas como cadenas '\0'terminadas, son secuencias de bytes, especificadas por un punto de inicio e implícitamente incluyendo cada byte hasta, pero no incluyendo, el primer byte '\0' a partir de entonces. Los métodos que acepten un puntero de este tipo, sin longitud, lo interpretarán como esta secuencia de bytes. Tal secuencia, por construcción, no puede contener un byte '\0'.

Otras sobrecargas aceptan un puntero de inicio y un contador de bytes; éstas utilizan el número dado de bytes, siguiendo la dirección de inicio, independientemente de si alguno de ellos resulta ser un byte '\0'. En algunos casos, cuando no existe una sobrecarga que sólo acepte un puntero, pasar una longitud de -1 hará que el método utilice el desplazamiento del primer byte '\0' después del puntero como longitud; sólo debe pasarse una longitud de -1 si el método dice explícitamente que lo hace (en cuyo caso suele ser un argumento por defecto).

Espaciado de caracteres

Un requisito frecuente es eliminar los caracteres de espaciado de una matriz de bytes ('\n', '\t', ' ', etc.). Si desea eliminar el espaciado de ambos extremos de un QByteArray, utilice trimmed(). Si además desea sustituir cada serie de caracteres de espaciado por un único carácter de espacio dentro de la matriz de bytes, utilice simplified(). A estos efectos, sólo se reconocen los caracteres de espaciado ASCII.

Conversiones número-cadena

Las funciones que realizan conversiones entre tipos de datos numéricos y representaciones de cadenas se ejecutan en la configuración regional de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones locales entre números y cadenas.

Caso de carácter

En QByteArray, la noción de mayúsculas y minúsculas y de comparación independiente de mayúsculas y minúsculas se limita a ASCII. Los caracteres no ASCII se tratan como caracteres sin mayúsculas o minúsculas, ya que sus mayúsculas o minúsculas dependen de la codificación. Esto afecta a las funciones que admiten la opción de no distinguir entre mayúsculas y minúsculas o que cambian las mayúsculas y minúsculas de sus argumentos. Las funciones a las que afecta son compare(), isLower(), isUpper(), toLower() y toUpper().

Este problema no se aplica a QStrings ya que representan caracteres utilizando Unicode.

Véase también QByteArrayView, QString y QBitArray.

Documentación de tipos de miembros

enum QByteArray::Base64Option
flags QByteArray::Base64Options

Este enum contiene las opciones disponibles para codificar y decodificar Base64. Base64 está definido por RFC 4648, con las siguientes opciones:

ConstanteValorDescripción
QByteArray::Base64Encoding0(por defecto) El alfabeto normal de Base64, llamado simplemente "base64".
QByteArray::Base64UrlEncoding1Un alfabeto alternativo, llamado "base64url", que reemplaza dos caracteres en el alfabeto para ser más amigable con las URLs.
QByteArray::KeepTrailingEquals0(por defecto) Mantiene los signos iguales de relleno al final de los datos codificados, por lo que los datos siempre tienen un tamaño múltiplo de cuatro.
QByteArray::OmitTrailingEquals2Omite añadir los signos iguales de relleno al final de los datos codificados.
QByteArray::IgnoreBase64DecodingErrors0Al decodificar datos codificados en Base64, ignora los errores en la entrada; los caracteres inválidos simplemente se omiten. Este valor enum se ha añadido en Qt 5.15.
QByteArray::AbortOnBase64DecodingErrors4Al decodificar datos codificados en Base64, se detiene en el primer error de decodificación. Este valor enum ha sido añadido en Qt 5.15.

QByteArray::fromBase64Encoding() y QByteArray::fromBase64() ignoran las opciones KeepTrailingEquals y OmitTrailingEquals. Si se especifica la opción IgnoreBase64DecodingErrors, no marcarán errores en caso de que falten signos de igual al final o si hay demasiados. Si en cambio se especifica AbortOnBase64DecodingErrors, entonces la entrada no debe tener relleno o debe tener la cantidad correcta de signos iguales.

El tipo Base64Options es un typedef para QFlags<Base64Option>. Almacena una combinación OR de valores Base64Option.

QByteArray::const_iterator

Este typedef proporciona un iterador const de estilo STL para QByteArray.

Véase también QByteArray::const_reverse_iterator y QByteArray::iterator.

QByteArray::const_reverse_iterator

Este tippedef proporciona un iterador inverso const al estilo STL para QByteArray.

Véase también QByteArray::reverse_iterator y QByteArray::const_iterator.

QByteArray::iterator

Este tippedef proporciona un iterador no-const de estilo STL para QByteArray.

Véase también QByteArray::reverse_iterator y QByteArray::const_iterator.

QByteArray::reverse_iterator

Este tippedef proporciona un iterador inverso no-const de estilo STL para QByteArray.

Véase también QByteArray::const_reverse_iterator y QByteArray::iterator.

Documentación de funciones miembro

[constexpr noexcept] QByteArray::QByteArray()

Construye una matriz de bytes vacía.

Véase también isEmpty().

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

Construye una matriz de bytes inicializada con los datos de la vista de matriz de bytes.

El QByteArray será null si y sólo si v es null.

Esta función se introdujo en Qt 6.8.

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

Construye una matriz de bytes que contiene los primeros size bytes de la matriz data.

Si data es 0, se construye una matriz de bytes nula.

Si size es negativo, se asume que data apunta a una cadena '\0'terminada y su longitud se determina dinámicamente.

QByteArray realiza una copia profunda de los datos de la cadena.

Véase también fromRawData().

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

Construye una matriz de bytes de tamaño size con contenido no inicializado.

Por ejemplo:

QByteArray buffer(123, Qt::Uninitialized);

QByteArray::QByteArray(qsizetype size, char ch)

Construye una matriz de bytes de tamaño size con cada byte establecido a ch.

Véase también fill().

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

Construye una copia de other.

Esta operación toma un tiempo constante, porque QByteArray es implícitamente compartido. Esto hace que devolver un QByteArray desde una función sea muy rápido. Si se modifica una instancia compartida, se copiará (copy-on-write), tardando un tiempo lineal.

Véase también operator=().

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

Move-construye una instancia de QByteArray, haciendo que apunte al mismo objeto al que apuntaba other.

[noexcept] QByteArray::~QByteArray()

Destruye la matriz de bytes.

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

Añade la matriz de bytes ba al final de esta matriz de bytes.

Ejemplo:

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

Es lo mismo que insertar(size(), ba).

Nota: QByteArray es una clase implícitamente compartida. En consecuencia, si se anexa a una matriz de bytes vacía, entonces la matriz de bytes sólo compartirá los datos contenidos en ba. En este caso, no se realiza ninguna copia de datos, tomándose un tiempo constante. Si se modifica una instancia compartida, se copiará (copy-on-write), tardando un tiempo lineal.

Si la matriz de bytes a la que se añade no está vacía, se realiza una copia en profundidad de los datos, lo que lleva un tiempo lineal.

La función append() suele ser muy rápida(tiempo constante), ya que QByteArray preasigna espacio extra al final de los datos, por lo que puede crecer sin reasignar toda la matriz cada vez.

Véase también operator+=(), prepend() y insert().

QByteArray &QByteArray::append(QByteArrayView data)

Añade data a esta matriz de bytes.

Esta es una función sobrecargada.

QByteArray &QByteArray::append(char ch)

Añade el byte ch a esta matriz de bytes.

Esta es una función sobrecargada.

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

Añade la cadena '\0'-terminada str a esta matriz de bytes.

Se trata de una función sobrecargada.

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

Añade los primeros len bytes comenzando en str a esta matriz de bytes y devuelve una referencia a esta matriz de bytes. Los bytes añadidos pueden incluir '\0' bytes.

Si len es negativo, se asumirá que str es una cadena '\0'terminada y la longitud a copiar se determinará automáticamente usando qstrlen().

Si len es cero o str es nulo, no se añade nada a la matriz de bytes. Asegúrese de que len no es más largo que str.

Se trata de una función sobrecargada.

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

Añade count copias del byte ch a esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

Si count es negativo o cero no se añade nada a la matriz de bytes.

Se trata de una función sobrecargada.

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

Sustituye el contenido de esta matriz de bytes por una copia de v y devuelve una referencia a esta matriz de bytes.

El tamaño de esta matriz de bytes será igual al tamaño de v.

Esta función sólo asigna memoria si el tamaño de v excede la capacidad de esta matriz de bytes o si esta matriz de bytes está compartida.

Esta función se introdujo en Qt 6.6.

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

Sustituye el contenido de esta matriz de bytes por una copia de los elementos del rango del iterador [first, last) y devuelve una referencia a esta matriz de bytes.

El tamaño de esta matriz de bytes será igual al número de elementos del rango [first, last).

Esta función sólo asignará memoria si el número de elementos en el rango excede la capacidad de esta matriz de bytes o esta matriz de bytes es compartida.

Nota: El comportamiento es indefinido si alguno de los argumentos es un iterador dentro de *this o [first, last) no es un rango válido.

Restricciones

Participa en la resolución de sobrecargas sólo si InputIterator cumple los requisitos de un LegacyInputIterator.

Esta función se introdujo en Qt 6.6.

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

Sustituye el contenido de esta matriz de bytes por n copias de c y devuelve una referencia a esta matriz de bytes.

El tamaño de esta matriz de bytes será igual a n, que tiene que ser no negativo.

Esta función sólo asignará memoria si n excede la capacidad de esta matriz de bytes o esta matriz de bytes está compartida.

Esta función se introdujo en Qt 6.6.

Véase también fill().

char QByteArray::at(qsizetype i) const

Devuelve el byte en la posición de índice i en la matriz de bytes.

i debe ser una posición de índice válida en la matriz de bytes (es decir, 0 <= i < size()).

Véase también operator[]().

char &QByteArray::back()

Devuelve una referencia al último byte de la matriz de bytes. Igual que operator[](size() - 1).

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en un array de bytes vacío constituye un comportamiento indefinido.

Véase también front(), at(), y operator[]().

char QByteArray::back() const

Devuelve el último byte de la matriz de bytes. Igual que at(size() - 1).

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en un array de bytes vacío constituye un comportamiento indefinido.

Véase también front(), at(), y operator[]().

QByteArray::iterator QByteArray::begin()

Devuelve un iterador de estilo STL que apunta al primer byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también constBegin() y end().

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

Esta función sobrecarga QByteArray::begin().

qsizetype QByteArray::capacity() const

Devuelve el número máximo de bytes que pueden almacenarse en la matriz de bytes sin forzar una reasignación.

El único propósito de esta función es proporcionar un medio para ajustar el uso de memoria de QByteArray. En general, rara vez necesitará llamar a esta función. Si desea saber cuántos bytes hay en la matriz de bytes, llame a size().

Nota: una matriz de bytes asignada estáticamente reportará una capacidad de 0, incluso si no está vacía.

Nota : la posición de espacio libre en el bloque de memoria asignado no está definida. En otras palabras, no se debe asumir que la memoria libre se encuentra siempre después de los elementos inicializados.

Véase también reserve() y squeeze().

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

Devuelve un iterador const de estilo STL que apunta al primer byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también begin() y cend().

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

Devuelve un iterador const de estilo STL que apunta justo después del último byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también cbegin() y end().

void QByteArray::chop(qsizetype n)

Elimina n bytes del final de la matriz de bytes.

Si n es mayor que size(), el resultado es una matriz de bytes vacía.

Ejemplo:

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

Véase también truncate(), resize(), y first().

QByteArray QByteArray::chopped(qsizetype len) const &

QByteArray QByteArray::chopped(qsizetype len) &&

Devuelve una matriz de bytes que contiene los bytes size() - len situados más a la izquierda de esta matriz de bytes.

Nota: El comportamiento es indefinido si len es negativo o mayor que size().

Véase también endsWith(), first(), last(), sliced(), chop(), truncate(), y slice().

void QByteArray::clear()

Borra el contenido de la matriz de bytes y la hace nula.

Véase también resize() y isNull().

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

Devuelve un entero menor, igual o mayor que cero dependiendo de si este QByteArray ordena antes, en la misma posición o después que el QByteArrayView bv . La comparación se realiza teniendo en cuenta mayúsculas y minúsculas cs.

Esta función se introdujo en Qt 6.0.

Véase también operator== y Character Case.

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

Devuelve un iterador const de estilo STL que apunta al primer byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también begin() y constEnd().

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

Devuelve un puntero a los datos const almacenados en la matriz de bytes. El puntero puede utilizarse para acceder a los bytes que componen la matriz. Los datos son '\0'-terminados a menos que el objeto QByteArray haya sido creado a partir de datos sin procesar.

El puntero sigue siendo válido mientras no se produzca una separación y no se modifique QByteArray.

Esta función es útil sobre todo para pasar una matriz de bytes a una función que acepte un const char *.

Nota: Un QByteArray puede almacenar cualquier valor de byte incluyendo '\0's, pero la mayoría de las funciones que toman argumentos char * asumen que los datos terminan en el primer '\0' que encuentran.

Véase también data(), operator[]() y fromRawData().

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

Devuelve un iterador const de estilo STL que apunta justo después del último byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también constBegin() y end().

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

Devuelve true si este array de bytes contiene una ocurrencia de la secuencia de bytes vista por bv; en caso contrario devuelve false.

Esta función se introdujo en Qt 6.0.

Véase también indexOf() y count().

bool QByteArray::contains(char ch) const

Devuelve true si la matriz de bytes contiene el byte ch; en caso contrario devuelve false.

Se trata de una función sobrecargada.

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

Devuelve el número de ocurrencias (potencialmente solapadas) de la secuencia de bytes vista por bv en este array de bytes.

Esta función se introdujo en Qt 6.0.

Véase también contains() y indexOf().

qsizetype QByteArray::count(char ch) const

Devuelve el número de apariciones del byte ch en la matriz de bytes.

Se trata de una función sobrecargada.

Véase también contains() y indexOf().

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

Devuelve un iterador inverso estilo STL que apunta al primer byte de la matriz de bytes, en orden inverso.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también begin(), rbegin(), y rend().

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

Devuelve un iterador inverso estilo STL que apunta justo después del último byte de la matriz de bytes, en orden inverso.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también end(), rend(), y rbegin().

char *QByteArray::data()

Devuelve un puntero a los datos almacenados en la matriz de bytes. El puntero puede utilizarse para acceder y modificar los bytes que componen la matriz. Los datos están '\0'-terminados, es decir, el número de bytes a los que se puede acceder siguiendo el puntero devuelto es size() + 1, incluido el terminador '\0'.

Ejemplo:

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

El puntero sigue siendo válido mientras no se produzca una separación y no se modifique QByteArray.

Para el acceso de sólo lectura, constData() es más rápido porque nunca provoca una copia profunda.

Esta función es útil sobre todo para pasar una matriz de bytes a una función que acepte un const char *.

El siguiente ejemplo hace una copia del char* devuelto por data(), pero corromperá el heap y causará un crash porque no asigna un byte para el '\0' al final:

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

Este asigna la cantidad correcta de espacio:

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

Nota: Un QByteArray puede almacenar cualquier valor de byte incluyendo '\0's, pero la mayoría de las funciones que toman argumentos char * asumen que los datos terminan en el primer '\0' que encuentran.

Véase también constData() y operator[]().

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

Se trata de una función sobrecargada.

QByteArray::iterator QByteArray::end()

Devuelve un iterador de estilo STL que apunta justo después del último byte de la matriz de bytes.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también begin() y constEnd().

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

Esta función sobrecarga QByteArray::end().

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

Devuelve true si esta matriz de bytes termina con la secuencia de bytes vista por bv; en caso contrario devuelve false.

Ejemplo:

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

Esta función se introdujo en Qt 6.0.

Véase también startsWith() y last().

bool QByteArray::endsWith(char ch) const

Devuelve true si esta matriz de bytes termina con el byte ch; en caso contrario devuelve false.

Se trata de una función sobrecargada.

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

Elimina de la matriz de bytes los caracteres del rango semiabierto [ first, last ). Devuelve un iterador al carácter referido por last antes del borrado.

Esta función se introdujo en Qt 6.1.

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

Elimina el carácter indicado por it de la matriz de bytes. Devuelve un iterador al carácter inmediatamente posterior al carácter borrado.

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

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.5.

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

Establece cada byte de la matriz de bytes en ch. Si size es diferente de -1 (por defecto), la matriz de bytes se redimensiona previamente al tamaño size.

Ejemplo:

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

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

Véase también resize().

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

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

Devuelve los primeros n bytes de la matriz de bytes.

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Ejemplo:

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

Estas funciones se introdujeron en Qt 6.0.

Véase también last(), sliced(), startsWith(), chopped(), chop(), truncate(), y slice().

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

Devuelve una copia descodificada de la matriz Base64 base64, utilizando las opciones definidas por options. Si options contiene IgnoreBase64DecodingErrors (por defecto), no se comprueba la validez de la entrada; los caracteres no válidos de la entrada se omiten, permitiendo que el proceso de descodificación continúe con los caracteres siguientes. Si options contiene AbortOnBase64DecodingErrors, la descodificación se detendrá en el primer carácter no válido.

Por ejemplo:

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>"

El algoritmo utilizado para descodificar datos codificados en Base64 se define en RFC 4648.

Devuelve los datos descodificados o, si se ha pasado la opción AbortOnBase64DecodingErrors y los datos de entrada no eran válidos, una matriz de bytes vacía.

Nota: Se recomienda utilizar la función fromBase64Encoding() en código nuevo.

Véase también toBase64() y fromBase64Encoding().

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

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

Decodifica la matriz Base64 base64, utilizando las opciones definidas por options. Si options contiene IgnoreBase64DecodingErrors (por defecto), no se comprueba la validez de la entrada; los caracteres no válidos de la entrada se omiten, permitiendo que el proceso de descodificación continúe con los caracteres siguientes. Si options contiene AbortOnBase64DecodingErrors, la descodificación se detendrá en el primer carácter no válido.

Por ejemplo:

void process(const QByteArray &);

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

El algoritmo utilizado para descodificar datos codificados en Base64 se define en RFC 4648.

Devuelve un objeto QByteArrayFromBase64Result, que contiene los datos decodificados y una bandera que indica si la decodificación se ha realizado correctamente. Si se pasó la opción AbortOnBase64DecodingErrors y los datos de entrada no eran válidos, no se especifica qué contienen los datos descodificados.

Véase también toBase64().

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

Construye un nuevo QByteArray que contiene una copia del CFData data.

Véase también fromRawCFData(), fromRawData(), toRawCFData(), y toCFData().

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

Construye un nuevo QByteArray que contiene una copia del Uint8Array uint8array.

Esta función transfiere datos desde un buffer de datos JavaScript - que no es direccionable desde código C++ - a la memoria heap propiedad de un QByteArray. El Uint8Array puede ser liberado una vez que esta función retorna y se ha hecho una copia.

El argumento uint8array debe ser un emscripten::val que haga referencia a un objeto Uint8Array, por ejemplo, obtenido de una variable global JavaScript:

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

Esta función devuelve un QByteArray nulo si el tamaño del Uint8Array excede la capacidad máxima de QByteArray, o si el argumento uint8array no es del tipo Uint8Array.

Esta función se introdujo en Qt 6.5.

Véase también toEcmaUint8Array().

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

Devuelve una copia descodificada de la matriz codificada hexadecimalmente hexEncoded. No se comprueba la validez de la entrada; los caracteres no válidos de la entrada se omiten, lo que permite que el proceso de descodificación continúe con los caracteres siguientes.

Por ejemplo:

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

Véase también toHex().

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

Construye un nuevo QByteArray que contiene una copia del NSData data.

Véase también fromRawNSData(), fromRawData(), toNSData() y toRawNSData().

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

Decodifica input a partir de la codificación porcentual estilo URI/URL.

Devuelve una matriz de bytes que contiene el texto descodificado. El parámetro percent permite utilizar un carácter distinto de '%' (por ejemplo, '_' o '=') como carácter de escape. Equivale a la entrada.percentDecoded(porcentaje).

Por ejemplo:

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

Véase también percentDecoded().

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

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.11.

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

Construye un QByteArray que utiliza los bytes del CFData data.

Los bytes de data no se copian.

El invocador garantiza que el CFData no será borrado o modificado mientras exista este objeto QByteArray.

Véase también fromCFData(), fromRawData(), toRawCFData() y toCFData().

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

Construye un QByteArray que utiliza los primeros size bytes de la matriz data. Los bytes no se copian. El QByteArray contendrá el puntero data. El invocador garantiza que data no será borrado o modificado mientras exista este QByteArray y cualquier copia del mismo que no haya sido modificada. En otras palabras, dado que QByteArray es una clase implícitamente compartida y la instancia devuelta por esta función contiene el puntero data, el invocador no debe borrar data ni modificarlo directamente mientras exista el QByteArray devuelto y cualquier copia del mismo. Sin embargo, QByteArray no se apropia de data, por lo que el destructor de QByteArray nunca borrará el puntero data, incluso cuando se destruya el último QByteArray que hace referencia a data.

Un intento posterior de modificar el contenido del QByteArray devuelto o de cualquier copia realizada a partir de él hará que se cree una copia profunda del array data antes de realizar la modificación. Esto asegura que la matriz data en bruto nunca será modificada por QByteArray.

A continuación se muestra un ejemplo de cómo leer datos utilizando un QDataStream sobre datos brutos en memoria sin copiar los datos brutos en un 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);
//...

Advertencia: Un array de bytes creado con fromRawData() no está '\0'-terminado, a menos que los datos brutos contengan un '\0' byte en la posición size. Aunque esto no importa para QDataStream o funciones como indexOf(), pasar la matriz de bytes a una función que acepte un const char * que se espera que sea '\0'-terminado fallará.

Véase también setRawData(), data(), constData(), nullTerminate() y nullTerminated().

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

Construye un QByteArray que utiliza los bytes del NSData data.

Los bytes de data no se copian.

El invocador garantiza que el NSData no se borrará ni modificará mientras exista este objeto QByteArray.

Véase también fromNSData(), fromRawData(), toRawNSData() y toNSData().

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

Devuelve una copia de la cadena str como QByteArray.

Véase también toStdString() y QString::fromStdString().

char &QByteArray::front()

Devuelve una referencia al primer byte de la matriz de bytes. Igual que operator[](0).

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en un array de bytes vacío constituye un comportamiento indefinido.

Véase también back(), at(), y operator[]().

char QByteArray::front() const

Devuelve el primer byte de la matriz de bytes. Igual que at(0).

Esta función se proporciona por compatibilidad con STL.

Advertencia: Llamar a esta función en un array de bytes vacío constituye un comportamiento indefinido.

Véase también back(), at(), y operator[]().

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

Devuelve la posición del índice del inicio de la primera ocurrencia de la secuencia de bytes vista por bv en esta matriz de bytes, buscando hacia adelante desde la posición del índice from. Devuelve -1 si no se encuentra ninguna coincidencia.

Ejemplo:

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

Esta función se introdujo en Qt 6.0.

Véase también lastIndexOf(), contains(), y count().

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

Devuelve la posición del índice del inicio de la primera aparición del byte ch en esta matriz de bytes, buscando hacia delante desde la posición del índice from. Devuelve -1 si no se encuentra ninguna coincidencia.

Ejemplo:

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

Esta es una función sobrecargada.

Véase también lastIndexOf() y contains().

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

Inserta data en la posición de índice i y devuelve una referencia a esta matriz de bytes.

Ejemplo:

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

Para matrices de bytes grandes, esta operación puede ser lenta(tiempo lineal), porque requiere mover todos los bytes en los índices i y superiores al menos una posición más en memoria.

Esta matriz crece para acomodar la inserción. Si i está más allá del final del array, el array se extiende primero con caracteres de espacio para alcanzar este i.

Esta función se introdujo en Qt 6.0.

Véase también append(), prepend(), replace(), y remove().

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

Inserta data en la posición de índice i y devuelve una referencia a esta matriz de bytes.

Esta matriz crece para acomodar la inserción. Si i está más allá del final de la matriz, la matriz se amplía primero con caracteres de espacio para llegar a este i.

Véase también append(), prepend(), replace() y remove().

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

Inserta s en la posición de índice i y devuelve una referencia a esta matriz de bytes.

Esta matriz crece para acomodar la inserción. Si i está más allá del final de la matriz, la matriz se amplía primero con caracteres de espacio para alcanzar este i.

La función es equivalente a insert(i, QByteArrayView(s))

Véase también append(), prepend(), replace() y remove().

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

Inserta el byte ch en la posición de índice i de la matriz de bytes.

Esta matriz crece para acomodar la inserción. Si i está más allá del final de la matriz, la matriz se amplía primero con caracteres de espacio para alcanzar este i.

Se trata de una función sobrecargada.

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

Inserta len bytes, comenzando en data, en la posición i de la matriz de bytes.

Esta matriz crece para acomodar la inserción. Si i está más allá del final de la matriz, la matriz se amplía primero con caracteres de espacio para alcanzar este i.

Se trata de una función sobrecargada.

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

Inserta count copias del byte ch en la posición de índice i en la matriz de bytes.

Esta matriz crece para acomodar la inserción. Si i está más allá del final de la matriz, la matriz se amplía primero con caracteres de espacio para alcanzar este i.

Se trata de una función sobrecargada.

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

Devuelve true si la matriz de bytes tiene tamaño 0; en caso contrario devuelve false.

Ejemplo:

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

Véase también size().

bool QByteArray::isLower() const

Devuelve true si esta matriz de bytes está en minúsculas, es decir, si es idéntica a su plegado toLower().

Tenga en cuenta que esto no significa que la matriz de bytes sólo contenga letras minúsculas; sólo que no contiene letras mayúsculas ASCII.

Véase también isUpper() y toLower().

[noexcept] bool QByteArray::isNull() const

Devuelve true si esta matriz de bytes es nula; en caso contrario devuelve false.

Ejemplo:

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

Qt distingue entre matrices de bytes nulas y vacías por razones históricas. Para la mayoría de las aplicaciones, lo que importa es si una matriz de bytes contiene o no datos, y esto puede determinarse utilizando isEmpty().

Véase también isEmpty().

bool QByteArray::isUpper() const

Devuelve true si esta matriz de bytes está en mayúsculas, es decir, si es idéntica a su plegado toUpper().

Tenga en cuenta que esto no significa que la matriz de bytes sólo contenga letras mayúsculas; sólo que no contiene letras ASCII minúsculas.

Véase también isLower() y toUpper().

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

Devuelve true si esta matriz de bytes contiene datos codificados en UTF-8 válidos, o false en caso contrario.

Esta función se introdujo en Qt 6.3.

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

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

Devuelve los últimos n bytes de la matriz de bytes.

Nota: El comportamiento es indefinido cuando n < 0 o n > size().

Ejemplo:

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

Estas funciones se introdujeron en Qt 6.0.

Véase también first(), sliced(), endsWith(), chopped(), chop(), truncate(), y slice().

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

Devuelve la posición del índice del comienzo de la última aparición de la secuencia de bytes vista por bv en esta matriz de bytes, buscando hacia atrás desde la posición del índice from.

Si from es -1, la búsqueda comienza en el último carácter; si es -2, en el penúltimo carácter y así sucesivamente.

Devuelve -1 si no se encuentra ninguna coincidencia.

Ejemplo:

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

Nota: Cuando se busca un bv de longitud 0, la coincidencia al final de los datos se excluye de la búsqueda mediante un from negativo, aunque -1 se considere normalmente como una búsqueda desde el final de la matriz de bytes: la coincidencia al final está después del último carácter, por lo que se excluye. Para incluir una coincidencia final vacía, se debe dar un valor positivo a from u omitir por completo el parámetro from.

Esta función se introdujo en Qt 6.0.

Véase también indexOf(), contains() y count().

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

Devuelve la posición del índice del inicio de la última ocurrencia de la secuencia de bytes vista por bv en esta matriz de bytes, buscando hacia atrás desde el final de la matriz de bytes. Devuelve -1 si no se encuentra ninguna coincidencia.

Ejemplo:

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

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.2.

Véase también indexOf(), contains(), y count().

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

Devuelve la posición del índice del inicio de la última aparición del byte ch en esta matriz de bytes, buscando hacia atrás desde la posición del índice from. Si from es -1 (por defecto), la búsqueda comienza en el último byte (en el índice size() - 1). Devuelve -1 si no se encuentra ninguna coincidencia.

Ejemplo:

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

Esta es una función sobrecargada.

Véase también indexOf() y contains().

QByteArray QByteArray::left(qsizetype len) const &

QByteArray QByteArray::left(qsizetype len) &&

Devuelve una matriz de bytes que contiene los primeros len bytes de esta matriz de bytes.

Si sabe que len no puede estar fuera de los límites, utilice first() en su lugar en código nuevo, porque es más rápido.

Se devuelve toda la matriz de bytes si len es mayor que size().

Devuelve un QByteArray vacío si len es menor que 0.

Ver también first(), last(), startsWith(), chopped(), chop(), y truncate().

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

Devuelve una matriz de bytes de tamaño width que contiene esta matriz de bytes rellenada con el byte fill.

Si truncate es falso y size() de la matriz de bytes es mayor que width, entonces la matriz de bytes devuelta es una copia de esta matriz de bytes.

Si truncate es verdadero y size() de la matriz de bytes es mayor que width, entonces cualquier byte en una copia de la matriz de bytes después de la posición width es eliminado, y la copia es devuelta.

Ejemplo:

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

Véase también rightJustified().

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

Igual que size().

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

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

Devuelve el número máximo de elementos que teóricamente puede contener la matriz de bytes. En la práctica, el número puede ser mucho menor, limitado por la cantidad de memoria disponible en el sistema.

Estas funciones se introdujeron en Qt 6.8.

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

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

Devuelve una matriz de bytes que contiene len bytes de esta matriz de bytes, comenzando en la posición pos.

Si sabe que pos y len no pueden estar fuera de los límites, utilice sliced() en su lugar en código nuevo, porque es más rápido.

Si len es -1 (por defecto), o pos + len >= size(), devuelve una matriz de bytes que contiene todos los bytes comenzando en la posición pos hasta el final de la matriz de bytes.

Véase también first(), last(), sliced(), chopped(), chop(), truncate(), y slice().

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

Si los datos de esta matriz de bytes no están terminados en cero, este método hará una copia profunda de los datos y los terminará en cero.

Un QByteArray está terminado en cero por defecto, sin embargo, en algunos casos (por ejemplo, cuando se utiliza fromRawData()), los datos no terminan necesariamente con un carácter \0, lo que podría ser un problema al llamar a métodos que esperan una cadena terminada en cero (por ejemplo, C API).

Esta función se introdujo en Qt 6.10.

Véase también nullTerminated(), fromRawData() y setRawData().

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

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

Devuelve una copia de esta matriz de bytes que siempre está terminada en cero. Véase nullTerminate().

Estas funciones se introdujeron en Qt 6.10.

Véase también nullTerminate(), fromRawData() y setRawData().

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

Devuelve una matriz de bytes que representa el número entero n como texto.

Devuelve una matriz de bytes que contiene una cadena que representa n, utilizando el base especificado (diez por defecto). Se admiten las bases 2 a 36, utilizando letras para los dígitos a partir de 9: A es diez, B es once, etc.

Ejemplo:

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

Nota: El formato del número no está localizado; se utiliza la configuración regional C por defecto, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones locales entre números y cadenas.

Véase también setNum() y toInt().

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

Se trata de una función sobrecargada.

Véase también toLong().

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

Se trata de una función sobrecargada.

Véase también toLongLong().

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

Se trata de una función sobrecargada.

Véase también toULongLong().

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

Se trata de una función sobrecargada.

Véase también toUInt().

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

Se trata de una función sobrecargada.

Véase también toULong().

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

Devuelve una matriz de bytes que representa el número de coma flotante n como texto.

Devuelve una matriz de bytes que contiene una cadena que representa n, con un format y precision dados, con los mismos significados que para QLocale::toString(double, char, int). Por ejemplo:

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

Se trata de una función sobrecargada.

Véase también toDouble() y QLocale::FloatingPointPrecisionOption.

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

Decodifica la codificación porcentual estilo URI/URL.

Devuelve una matriz de bytes que contiene el texto descodificado. El parámetro percent permite utilizar un carácter distinto de "%" (por ejemplo, "_" o "=") como carácter de escape.

Por ejemplo:

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

Nota: Dada una entrada inválida (como una cadena que contenga la secuencia "%G5", que no es un número hexadecimal válido) la salida tampoco será válida. Como ejemplo: la secuencia "%G5" podría ser decodificada a 'W'.

Esta función se introdujo en Qt 6.4.

Véase también toPercentEncoding() y QUrl::fromPercentEncoding().

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

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.11.

QByteArray &QByteArray::prepend(QByteArrayView ba)

Antepone la vista de matriz de bytes ba a esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

Esta operación suele ser muy rápida(tiempo constante), ya que QByteArray preasigna espacio extra al principio de los datos, por lo que puede crecer sin reasignar todo el array cada vez.

Ejemplo:

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

Es lo mismo que insert(0, ba).

Véase también append() y insert().

QByteArray &QByteArray::prepend(char ch)

Añade el byte ch a esta matriz de bytes.

Esta es una función sobrecargada.

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

Añade ba a esta matriz de bytes.

Esta es una función sobrecargada.

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

Añade la cadena '\0'-terminada str a esta matriz de bytes.

Se trata de una función sobrecargada.

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

Añade a esta matriz de bytes len bytes a partir de str. Los bytes añadidos pueden incluir '\0' bytes.

Esta es una función sobrecargada.

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

Añade count copias del byte ch a esta matriz de bytes.

Esta es una función sobrecargada.

void QByteArray::push_back(const QByteArray &other)

Esta función se proporciona por compatibilidad con STL. Es equivalente a append(other).

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

Igual que append(str).

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.0.

void QByteArray::push_back(char ch)

Igual que append(ch).

Se trata de una función sobrecargada.

void QByteArray::push_back(const char *str)

Igual que append(str).

Se trata de una función sobrecargada.

void QByteArray::push_front(const QByteArray &other)

Esta función se proporciona por compatibilidad con STL. Es equivalente a prepend(other).

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

Igual que prepend(str).

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.0.

void QByteArray::push_front(char ch)

Igual que prepend(ch).

Se trata de una función sobrecargada.

void QByteArray::push_front(const char *str)

Igual que prepend(str).

Se trata de una función sobrecargada.

QByteArray::reverse_iterator QByteArray::rbegin()

Devuelve un iterador inverso estilo STL que apunta al primer byte de la matriz de bytes, en orden inverso.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también begin(), crbegin(), y rend().

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

Se trata de una función sobrecargada.

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

Elimina len bytes de la matriz, comenzando en la posición de índice pos, y devuelve una referencia a la matriz.

Si pos está fuera de rango, no ocurre nada. Si pos es válido, pero pos + len es mayor que el tamaño del array, el array se trunca en la posición pos.

Ejemplo:

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

La eliminación de elementos preservará la capacidad de la matriz y no reducirá la cantidad de memoria asignada. Para eliminar capacidad extra y liberar tanta memoria como sea posible, llame a squeeze() después del último cambio en el tamaño del array.

Véase también insert(), replace() y squeeze().

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

Elimina el carácter en el índice pos. Si pos está fuera de los límites (es decir, pos >= size()) esta función no hace nada.

Esta función se introdujo en Qt 6.5.

Véase también remove().

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

Elimina el primer carácter de esta matriz de bytes. Si la matriz de bytes está vacía, esta función no hace nada.

Esta función se introdujo en Qt 6.5.

Véase también remove().

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

Elimina de la matriz de bytes todos los bytes para los que el predicado pred devuelve verdadero. Devuelve una referencia a la matriz de bytes.

Esta función se introdujo en Qt 6.1.

Véase también remove().

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

Elimina el último carácter de esta matriz de bytes. Si la matriz de bytes está vacía, esta función no hace nada.

Esta función se introdujo en Qt 6.5.

Véase también remove().

QByteArray::reverse_iterator QByteArray::rend()

Devuelve un iterador inverso estilo STL que apunta justo después del último byte de la matriz de bytes, en orden inverso.

Advertencia: El iterador devuelto se invalida al separarse o cuando se modifica QByteArray.

Véase también end(), crend(), y rbegin().

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

Se trata de una función sobrecargada.

QByteArray QByteArray::repeated(qsizetype times) const

Devuelve una copia de esta matriz de bytes repetida el número especificado de times.

Si times es menor que 1, se devuelve una matriz de bytes vacía.

Ejemplo:

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

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

Reemplaza len bytes desde la posición de índice pos con la matriz de bytes after, y devuelve una referencia a esta matriz de bytes.

Ejemplo:

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

Véase también insert() y remove().

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

Sustituye cada aparición de la matriz de bytes before por la matriz de bytes after.

Ejemplo:

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

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.0.

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

Sustituye cada aparición del byte before por la matriz de bytes after.

Se trata de una función sobrecargada.

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

Sustituye cada aparición del byte before por el byte after.

Se trata de una función sobrecargada.

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

Sustituye todos los bytes de bsize que comienzan en before por los bytes de asize que comienzan en after. Dado que los tamaños de las cadenas vienen dados por bsize y asize, pueden contener bytes '\0' y no es necesario que terminen en '\0'.

Se trata de una función sobrecargada.

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

Sustituye los bytes len de la posición de índice pos por bytes alen que comienzan en la posición after. Los bytes insertados pueden incluir '\0' bytes.

Se trata de una función sobrecargada.

void QByteArray::reserve(qsizetype size)

Intenta asignar memoria para al menos size bytes.

Si conoce de antemano el tamaño que tendrá la matriz de bytes, puede llamar a esta función, y si llama a menudo a resize() es probable que obtenga un mejor rendimiento.

En caso de duda sobre cuánto espacio se necesitará, suele ser mejor utilizar un límite superior como size, o una estimación alta del tamaño más probable, si un límite superior estricto fuera mucho mayor que éste. Si size es una subestimación, el array crecerá según sea necesario una vez que se exceda el tamaño reservado, lo que puede llevar a una asignación mayor que la que tendría su mejor sobreestimación y ralentizará la operación que la desencadena.

Advertencia: reserve() reserva memoria pero no cambia el tamaño de la matriz de bytes. Acceder a datos más allá del final de la matriz de bytes es un comportamiento indefinido. Si necesita acceder a la memoria más allá del final actual de la matriz, utilice resize().

El único propósito de esta función es proporcionar un medio para ajustar el uso de memoria de QByteArray. En general, rara vez necesitará llamar a esta función.

Véase también squeeze() y capacity().

void QByteArray::resize(qsizetype size)

Establece el tamaño de la matriz de bytes en size bytes.

Si size es mayor que el tamaño actual, la matriz de bytes se amplía para convertirse en size bytes con los bytes adicionales añadidos al final. Los nuevos bytes no se inicializan.

Si size es menor que el tamaño actual, los bytes más allá de la posición size se excluyen de la matriz de bytes.

Nota: Aunque resize() aumentará la capacidad si es necesario, nunca la reducirá. Para deshacerse del exceso de capacidad, utilice squeeze().

Véase también size(), truncate() y squeeze().

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

Establece el tamaño de la matriz de bytes en newSize bytes.

Si newSize es mayor que el tamaño actual, la matriz de bytes se amplía para convertirse en newSize bytes con los bytes adicionales añadidos al final. Los nuevos bytes se inicializan a c.

Si newSize es menor que el tamaño actual, los bytes más allá de la posición newSize se excluyen de la matriz de bytes.

Nota: Aunque resize() aumentará la capacidad si es necesario, nunca la reducirá. Para deshacerse del exceso de capacidad, utilice squeeze().

Esta función se introdujo en Qt 6.4.

Véase también size(), truncate(), y squeeze().

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

Redimensiona la matriz de bytes a size bytes. Si el tamaño de la matriz de bytes crece, los nuevos bytes no se inicializan.

El comportamiento es idéntico a resize(size).

Esta función se introdujo en Qt 6.8.

Véase también resize().

QByteArray QByteArray::right(qsizetype len) const &

Devuelve una matriz de bytes que contiene los últimos len bytes de esta matriz de bytes.

Si sabe que len no puede estar fuera de los límites, utilice last() en su lugar en código nuevo, porque es más rápido.

Se devuelve toda la matriz de bytes si len es mayor que size().

Devuelve un QByteArray vacío si len es menor que 0.

Ver también endsWith(), last(), first(), sliced(), chopped(), chop(), truncate(), y slice().

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

Devuelve una matriz de bytes de tamaño width que contiene el byte fill seguido de esta matriz de bytes.

Si truncate es falso y el tamaño de la matriz de bytes es mayor que width, entonces la matriz de bytes devuelta es una copia de esta matriz de bytes.

Si truncate es verdadero y el tamaño de la matriz de bytes es mayor que width, entonces la matriz de bytes resultante se trunca en la posición width.

Ejemplo:

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

Véase también leftJustified().

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

Representa el número entero n como texto.

Establece esta matriz de bytes en una cadena que representa n en base base (diez por defecto) y devuelve una referencia a esta matriz de bytes. Se admiten las bases 2 a 36, utilizando letras para los dígitos a partir de 9; A es diez, B es once y así sucesivamente.

Ejemplo:

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

Nota: El formato del número no está localizado; se utiliza la configuración regional C por defecto independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones locales entre números y cadenas.

Véase también number() y toInt().

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

Se trata de una función sobrecargada.

Véase también toLong().

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

Se trata de una función sobrecargada.

Véase también toLongLong().

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

Se trata de una función sobrecargada.

Véase también toULongLong().

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

Se trata de una función sobrecargada.

Véase también toShort().

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

Se trata de una función sobrecargada.

Véase también toUInt().

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

Se trata de una función sobrecargada.

Véase también toULong().

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

Se trata de una función sobrecargada.

Véase también toUShort().

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

Representa el número de punto flotante n como texto.

Establece esta matriz de bytes en una cadena que representa n, con un format y precision dados (con los mismos significados que para QString::number(double, char, int)), y devuelve una referencia a esta matriz de bytes.

Se trata de una función sobrecargada.

Véase también toDouble() y QLocale::FloatingPointPrecisionOption.

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

Representa el número de punto flotante n como texto.

Establece esta matriz de bytes en una cadena que representa n, con un format y precision dados (con los mismos significados que para QString::number(double, char, int)), y devuelve una referencia a esta matriz de bytes.

Se trata de una función sobrecargada.

Véase también toFloat().

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

Restablece QByteArray para utilizar los primeros bytes de size de la matriz data. Los bytes no se copian. QByteArray contendrá el puntero data. El llamante garantiza que data no se borrará ni modificará mientras exista este QByteArray y cualquier copia del mismo que no haya sido modificada.

Esta función puede utilizarse en lugar de fromRawData() para reutilizar objetos QByteArray existentes y ahorrar reasignaciones de memoria.

Véase también fromRawData(), data(), constData(), nullTerminate() y nullTerminated().

void QByteArray::shrink_to_fit()

Esta función se proporciona por compatibilidad con STL. Es equivalente a squeeze().

QByteArray QByteArray::simplified() const

Devuelve una copia de esta matriz de bytes a la que se le han eliminado los caracteres de espaciado del inicio y del final, y en la que cada secuencia de caracteres de espaciado interno se sustituye por un único espacio.

Los caracteres de espaciado son aquellos para los que la función estándar de C++ isspace() devuelve true en la configuración regional de C; se trata de los caracteres ASCII tabulación '\t', avance de línea '\n', retorno de carro '\r', tabulación vertical '\v', avance de forma '\f', y espacio ' '.

Ejemplo:

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

Véase también trimmed(), QChar::SpecialCharacter, y Spacing Characters.

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

Devuelve el número de bytes de esta matriz de bytes.

El último byte de la matriz de bytes está en la posición size() - 1. Además, QByteArray se asegura de que el byte en la posición size() sea siempre '\0', para que pueda usar el valor de retorno de data() y constData() como argumentos de funciones que esperan cadenas '\0'terminadas. Si el objeto QByteArray se creó a partir de un objeto raw data que no incluía el byte de terminación '\0', entonces QByteArray no lo añade automáticamente a menos que se cree una copia profunda.

Ejemplo:

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

Véase también isEmpty() y resize().

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

Modifica esta matriz de bytes para que comience en la posición pos, extendiéndose para los bytes n, y devuelve una referencia a esta matriz de bytes.

Nota: El comportamiento es indefinido si pos < 0, n < 0, o pos + n > size().

Ejemplo:

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

Esta función se introdujo en Qt 6.8.

Véase también sliced(), first(), last(), chopped(), chop(), y truncate().

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

Modifica esta matriz de bytes para que comience en la posición pos, extendiéndose hasta su final, y devuelve una referencia a esta matriz de bytes.

Nota: El comportamiento es indefinido si pos < 0 o pos > size().

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.8.

Ver también sliced(), first(), last(), chopped(), chop(), y truncate().

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

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

Devuelve una matriz de bytes que contiene los n bytes de este objeto comenzando en la posición pos.

Nota: El comportamiento es indefinido cuando pos < 0, n < 0, o pos + n > size().

Ejemplo:

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

Estas funciones se introdujeron en Qt 6.0.

Véase también first(), last(), chopped(), chop(), truncate(), y slice().

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

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

Devuelve una matriz de bytes que contiene los bytes que comienzan en la posición pos de este objeto y se extienden hasta el final del mismo.

Nota: El comportamiento es indefinido cuando pos < 0 o pos > size().

Estas funciones se introdujeron en Qt 6.0.

Véase también first(), last(), chopped(), chop(), truncate(), y slice().

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

Divide la matriz de bytes en submatrices dondequiera que aparezca sep, y devuelve la lista de esas matrices. Si sep no coincide en ninguna parte de la matriz de bytes, split() devuelve una lista de un solo elemento que contiene esta matriz de bytes.

void QByteArray::squeeze()

Libera la memoria no necesaria para almacenar los datos de la matriz.

El único propósito de esta función es proporcionar un medio para ajustar el uso de memoria de QByteArray. En general, rara vez necesitará llamar a esta función.

Véase también reserve() y capacity().

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

Devuelve true si esta matriz de bytes comienza con la secuencia de bytes vista por bv; en caso contrario devuelve false.

Ejemplo:

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

Esta función se introdujo en Qt 6.0.

Véase también endsWith() y first().

bool QByteArray::startsWith(char ch) const

Devuelve true si esta matriz de bytes comienza con el byte ch; en caso contrario devuelve false.

Se trata de una función sobrecargada.

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

Intercambia esta matriz de bytes con other. Esta operación es muy rápida y nunca falla.

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

Devuelve una copia de la matriz de bytes, codificada utilizando las opciones 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"

El algoritmo utilizado para codificar datos en Base64 se define en RFC 4648.

Véase también fromBase64().

CFDataRef QByteArray::toCFData() const

Crea un CFData a partir de QByteArray.

La persona que llama posee el objeto CFData y es responsable de liberarlo.

Véase también toRawCFData(), fromCFData(), fromRawCFData() y fromRawData().

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

Devuelve la matriz de bytes convertida a un valor double.

Devuelve un infinito si la conversión se desborda o 0.0 si la conversión falla por otras razones (por ejemplo, desbordamiento por defecto).

Si ok no es nullptr, el fallo se notifica estableciendo *ok en false, y el éxito estableciendo *ok en 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

Advertencia: El contenido de QByteArray sólo puede contener caracteres numéricos válidos, lo que incluye el signo más/menos, el carácter e utilizado en notación científica y el punto decimal. La inclusión de la unidad o de caracteres adicionales provoca un error de conversión.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones locales entre números y cadenas.

Esta función ignora los espacios en blanco iniciales y finales.

Véase también number().

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

Crea un Uint8Array a partir de un QByteArray.

Esta función transfiere datos de la memoria heap propiedad de un QByteArray a un búfer de datos JavaScript. La función asigna y copia en un ArrayBuffer, y devuelve una vista Uint8Array a ese buffer.

Los objetos JavaScript poseen una copia de los datos, y este QByteArray puede ser borrado con seguridad después de que la copia haya sido realizada.

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

Esta función se introdujo en Qt 6.5.

Véase también fromEcmaUint8Array().

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

Devuelve la matriz de bytes convertida a un valor float.

Devuelve un infinito si la conversión se desborda o 0.0 si la conversión falla por otras razones (por ejemplo, desbordamiento por defecto).

Si ok no es nullptr, el fallo se notifica estableciendo *ok en false, y el éxito estableciendo *ok en 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

Advertencia: El contenido de QByteArray sólo puede contener caracteres numéricos válidos, lo que incluye el signo más/menos, el carácter e utilizado en notación científica y el punto decimal. La inclusión de la unidad o de caracteres adicionales provoca un error de conversión.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones locales entre números y cadenas.

Esta función ignora los espacios en blanco iniciales y finales.

Véase también number().

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

Devuelve una copia codificada hexadecimal de la matriz de bytes.

La codificación hexadecimal utiliza los números 0-9 y las letras a-f.

Si separator no es '\0', se inserta el carácter separador entre los bytes hexadecimales.

Ejemplo:

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

Véase también fromHex().

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

Devuelve la matriz de bytes convertida a int utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en 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

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

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

Devuelve la matriz de bytes convertida a un int long utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en 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

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

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

Devuelve la matriz de bytes convertida a long long utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

QByteArray QByteArray::toLower() const

Devuelve una copia de la matriz de bytes en la que cada letra ASCII mayúscula convertida a minúscula.

Ejemplo:

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

Véase también isLower(), toUpper(), y Character Case.

NSData *QByteArray::toNSData() const

Crea un NSData a partir de QByteArray.

El objeto NSData se libera automáticamente.

Véase también fromNSData(), fromRawNSData(), fromRawData() y toRawNSData().

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

Devuelve una copia codificada en porcentaje estilo URI/URL de esta matriz de bytes. El parámetro percent permite sustituir el carácter '%' predeterminado por otro.

Por defecto, esta función codificará todos los bytes que no sean uno de los siguientes:

ALFA ("a" a "z" y "A" a "Z") / DIGITO (0 a 9) / "-" / "." / "_" / "~"

Para evitar que se codifiquen los bytes, páselos a exclude. Para forzar la codificación de los bytes, páselos a include. El carácter percent siempre se codifica.

Ejemplo:

QByteArray text = "{¿una cadena de pescado?}";QByteArray ba = text.toPercentEncoding("{}", "s");qDebug("%s", ba.constData());
// imprime "{a fi%73hy %73tring%3F}"

La codificación hexadecimal utiliza los números 0-9 y las letras mayúsculas A-F.

Véase también fromPercentEncoding() y QUrl::toPercentEncoding().

CFDataRef QByteArray::toRawCFData() const

Construye un CFData que utiliza los bytes de QByteArray.

Los bytes de QByteArray no se copian.

El llamante garantiza que el QByteArray no será borrado o modificado mientras exista este objeto CFData.

Véase también toCFData(), fromRawCFData(), fromCFData() y fromRawData().

NSData *QByteArray::toRawNSData() const

Construye un NSData que utiliza los bytes de QByteArray.

Los bytes de QByteArray no se copian.

El que llama garantiza que el QByteArray no será borrado o modificado mientras exista este objeto NSData.

Véase también fromRawNSData(), fromNSData(), fromRawData() y toNSData().

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

Devuelve la matriz de bytes convertida a short utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

std::string QByteArray::toStdString() const

Devuelve un objeto std::string con los datos contenidos en este QByteArray.

Este operador es útil sobre todo para pasar un QByteArray a una función que acepte un objeto std::string.

Véase también fromStdString() y QString::toStdString().

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

Devuelve la matriz de bytes convertida a unsigned int utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

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

Devuelve la matriz de bytes convertida a unsigned long int utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

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

Devuelve la matriz de bytes convertida a unsigned long long utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

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

Devuelve la matriz de bytes convertida a unsigned short utilizando la base base, que es diez por defecto. Se admiten las bases 0 y 2 hasta 36, utilizando letras para los dígitos más allá de 9; A es diez, B es once y así sucesivamente.

Si base es 0, la base se determina automáticamente utilizando las siguientes reglas: Si la matriz de bytes empieza por "0x", se asume que es hexadecimal (base 16); en caso contrario, si empieza por "0b", se asume que es binaria (base 2); en caso contrario, si empieza por "0", se asume que es octal (base 8); en caso contrario, se asume que es decimal.

Devuelve 0 si la conversión falla.

Si ok no es nullptr, se informa del fallo estableciendo *ok en false, y del éxito estableciendo *ok en true.

Nota: La conversión del número se realiza en la configuración regional predeterminada de C, independientemente de la configuración regional del usuario. Utilice QLocale para realizar conversiones entre números y cadenas teniendo en cuenta la configuración regional.

Nota: En Qt 6.4 se añadió soporte para el prefijo "0b".

Véase también number().

QByteArray QByteArray::toUpper() const

Devuelve una copia de la matriz de bytes en la que cada letra ASCII minúscula convertida a mayúscula.

Ejemplo:

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

Véase también isUpper(), toLower(), y Character Case.

QByteArray QByteArray::trimmed() const

Devuelve una copia de esta matriz de bytes con los caracteres de espaciado eliminados del inicio y del final.

Los caracteres de espaciado son aquellos para los que la función estándar de C++ isspace() devuelve true en la configuración regional de C; se trata de los caracteres ASCII tabulación '\t', avance de línea '\n', retorno de carro '\r', tabulación vertical '\v', avance de forma '\f', y espacio ' '.

Ejemplo:

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

A diferencia de simplified(), trimmed() no modifica el espaciado interno.

Véase también simplified(), QChar::SpecialCharacter, y Spacing Characters.

void QByteArray::truncate(qsizetype pos)

Trunca la matriz de bytes en la posición de índice pos.

Si pos está más allá del final de la matriz, no ocurre nada.

Ejemplo:

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

Véase también chop(), resize(), y first().

QByteArray::operator const char *() const

QByteArray::operator const void *() const

Nota: Utilice constData() en su lugar en código nuevo.

Devuelve un puntero a los datos almacenados en la matriz de bytes. El puntero puede utilizarse para acceder a los bytes que componen la matriz. Los datos se '\0'-terminan.

El puntero seguirá siendo válido mientras no se produzca una separación y no se modifique QByteArray.

Este operador es útil sobre todo para pasar una matriz de bytes a una función que acepte un const char *.

Puede desactivar este operador definiendo QT_NO_CAST_FROM_BYTEARRAY cuando compile sus aplicaciones.

Nota: Un QByteArray puede almacenar cualquier valor de byte incluyendo '\0's, pero la mayoría de las funciones que toman argumentos char * asumen que los datos terminan en el primer '\0' que encuentran.

Véase también constData().

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

Convierte este objeto QByteArray en un objeto std::string_view. La vista de cadena devuelta abarcará la totalidad de la matriz de bytes.

Esta función se introdujo en Qt 6.10.

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

Añade la matriz de bytes ba al final de esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

Ejemplo:

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

Nota: QByteArray es una clase implícitamente compartida. En consecuencia, si se añade a una matriz de bytes vacía, la matriz de bytes compartirá los datos contenidos en ba. En este caso, no se realiza ninguna copia de datos, por lo que se tarda un tiempo constante. Si se modifica una instancia compartida, se copiará (copy-on-write), tardando un tiempo lineal.

Si la matriz de bytes a la que se añade no está vacía, se realiza una copia profunda de los datos, que tarda un tiempo lineal.

Esta operación normalmente no sufre de sobrecarga de asignación, porque QByteArray preasigna espacio extra al final de los datos para que pueda crecer sin reasignar para cada operación de anexión.

Véase también append() y prepend().

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

Añade el byte ch al final de esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

Se trata de una función sobrecargada.

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

Añade la cadena '\0'-terminada str al final de esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

Se trata de una función sobrecargada.

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

Mover-asigna other a esta instancia QByteArray.

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

Asigna other a esta matriz de bytes y devuelve una referencia a esta matriz de bytes.

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

Asigna str a esta matriz de bytes.

str se supone que apunta a una cadena terminada en cero, y su longitud se determina dinámicamente.

Se trata de una función sobrecargada.

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

Devuelve el byte en la posición de índice i como una referencia modificable.

i debe ser una posición de índice válida en la matriz de bytes (es decir, 0 <= i < size()).

Ejemplo:

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

Véase también at().

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

Igual que at(i).

Se trata de una función sobrecargada.

No miembros relacionados

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

Elimina todos los elementos que se comparan igual a t de la matriz de bytes ba. Devuelve el número de elementos eliminados, si los hay.

Esta función se introdujo en Qt 6.1.

Véase también erase_if.

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

Elimina todos los elementos para los que el predicado pred devuelve verdadero de la matriz de bytes ba. Devuelve el número de elementos eliminados, si los hay.

Esta función se introdujo en Qt 6.1.

Véase también erase.

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

Devuelve la suma de comprobación CRC-16 de data.

La suma de comprobación es independiente del orden de los bytes (endianness) y se calculará de acuerdo con el algoritmo publicado en standard. Por defecto se utiliza el algoritmo publicado en ISO 3309 (Qt::ChecksumIso3309).

Nota: Esta función es una implementación del algoritmo CRC-16-CCITT que conserva la caché de 16 bits (tabla de 16 entradas).

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

Comprime la matriz de bytes data y devuelve los datos comprimidos en una nueva matriz de bytes.

El parámetro compressionLevel especifica cuánta compresión debe utilizarse. Los valores válidos están entre 0 y 9, correspondiendo 9 a la mayor compresión (es decir, datos comprimidos más pequeños) a costa de utilizar un algoritmo más lento. Los valores más pequeños (8, 7, ..., 1) proporcionan sucesivamente menos compresión a velocidades ligeramente más rápidas. El valor 0 corresponde a ninguna compresión. El valor por defecto es -1, que especifica la compresión por defecto de zlib.

Véase también qUncompress(const QByteArray &data).

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

Comprime el primer nbytes de data al nivel de compresión compressionLevel y devuelve los datos comprimidos en una nueva matriz de bytes.

Se trata de una función sobrecargada.

QByteArray qUncompress(const QByteArray &data)

Descomprime la matriz de bytes data y devuelve una nueva matriz de bytes con los datos descomprimidos.

Devuelve un QByteArray vacío si los datos de entrada estaban corruptos.

Esta función descomprimirá los datos comprimidos con qCompress() desde esta y cualquier versión anterior de Qt, hasta Qt 3.1 cuando se añadió esta característica.

Nota: Si quieres usar esta función para descomprimir datos externos que fueron comprimidos usando zlib, primero necesitas añadir una cabecera de cuatro bytes a la matriz de bytes que contiene los datos. La cabecera debe contener la longitud esperada (en bytes) de los datos descomprimidos, expresada como un entero de 32 bits sin signo y big-endian. No obstante, este número es sólo una indicación del tamaño inicial del búfer de salida. Si el tamaño indicado es demasiado pequeño para contener el resultado, el tamaño del búfer de salida seguirá aumentando hasta que la salida quepa o el sistema se quede sin memoria. Así, a pesar de la cabecera de 32 bits, esta función, en plataformas de 64 bits, puede producir más de 4GiB de salida.

Nota: En versiones de Qt anteriores a Qt 6.5, más de 2GiB de datos funcionaban de forma poco fiable; en versiones de Qt anteriores a Qt 6.0, no.

Véase también qCompress().

QByteArray qUncompress(const uchar *data, qsizetype nbytes)

Descomprime el primer nbytes de data y devuelve una nueva matriz de bytes con los datos descomprimidos.

Se trata de una función sobrecargada.

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

Una función strcmp() segura.

Compara str1 y str2. Devuelve un valor negativo si str1 es menor que str2, 0 si str1 es igual a str2 o un valor positivo si str1 es mayor que str2.

Si ambas cadenas son nullptr, se consideran iguales; en caso contrario, si alguna es nullptr, se trata como menor que la otra (incluso si la otra es una cadena vacía).

Véase también qstrncmp(), qstricmp(), qstrnicmp(), Character Case, y QByteArray::compare().

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

Copia todos los caracteres hasta '\0' inclusive de src en dst y devuelve un puntero a dst. Si src es nullptr, devuelve inmediatamente nullptr.

Esta función asume que dst es lo suficientemente grande como para contener el contenido de src.

Nota: Si dst y src se solapan, el comportamiento es indefinido.

Véase también qstrncpy().

char *qstrdup(const char *src)

Devuelve una cadena duplicada.

Asigna espacio para una copia de src, la copia y devuelve un puntero a la copia. Si src es nullptr, devuelve inmediatamente nullptr.

La propiedad se pasa al llamante, por lo que la cadena devuelta debe borrarse utilizando delete[].

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

Una función segura de stricmp().

Compara str1 y str2, ignorando las diferencias en el caso de cualquier carácter ASCII.

Devuelve un valor negativo si str1 es menor que str2, 0 si str1 es igual a str2 o un valor positivo si str1 es mayor que str2.

Si ambas cadenas son nullptr, se consideran iguales; en caso contrario, si alguna es nullptr, se trata como menor que la otra (incluso si la otra es una cadena vacía).

Véase también qstrcmp(), qstrncmp(), qstrnicmp(), Character Case, y QByteArray::compare().

size_t qstrlen(const char *str)

Una función segura de strlen().

Devuelve el número de caracteres que preceden a la terminación '\0', o 0 si str es nullptr.

Véase también qstrnlen().

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

Una función strncmp() segura.

Compara como máximo len bytes de str1 y str2.

Devuelve un valor negativo si str1 es menor que str2, 0 si str1 es igual a str2 o un valor positivo si str1 es mayor que str2.

Si ambas cadenas son nullptr, se consideran iguales; en caso contrario, si cualquiera de ellas es nullptr, se trata como menor que la otra (incluso si la otra es una cadena vacía o len es 0).

Véase también qstrcmp(), qstricmp(), qstrnicmp(), Character Case, y QByteArray::compare().

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

Una función segura de strncpy().

Copia como máximo len bytes de src (deteniéndose en len o en la terminación '\0' lo que ocurra primero) en dst. Garantiza que dst es '\0'-terminado, excepto cuando dst es nullptr o len es 0. Si src es nullptr, devuelve nullptr, de lo contrario devuelve dst.

Esta función asume que dst tiene al menos len caracteres.

Nota: Si dst y src se solapan, el comportamiento es indefinido.

Nota: A diferencia de strncpy(), esta función no escribe '\0' en todos los bytes len de dst, sino que se detiene después de la terminación '\0'. En este sentido, es similar a strncpy_s() de C11.

Véase también qstrcpy().

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

Una función segura de strnicmp().

Compara como máximo len bytes de str1 y str2, ignorando las diferencias en el caso de cualquier carácter ASCII.

Devuelve un valor negativo si str1 es menor que str2, 0 si str1 es igual a str2 o un valor positivo si str1 es mayor que str2.

Si ambas cadenas son nullptr, se consideran iguales; en caso contrario, si alguna es nullptr, se trata como menor que la otra (incluso si la otra es una cadena vacía o len es 0).

Véase también qstrcmp(), qstrncmp(), qstricmp(), Character Case, y QByteArray::compare().

size_t qstrnlen(const char *str, size_t maxlen)

Una función segura de strnlen().

Devuelve el número de caracteres que preceden a la terminación '\0', pero como máximo maxlen. Si str es nullptr, devuelve 0.

Véase también qstrlen().

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

Devuelve true si la matriz de bytes lhs no es igual a la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs no es igual a la cadena '\0'terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la cadena terminada en '\0' lhs no es igual a la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Operador literal que crea un QByteArray a partir de los primeros size caracteres de la cadena de caracteres literal str.

El QByteArray se crea en tiempo de compilación, y los datos de cadena generados se almacenan en el segmento de sólo lectura del archivo objeto compilado. Los literales duplicados pueden compartir la misma memoria de sólo lectura. Esta funcionalidad es intercambiable con QByteArrayLiteral, pero ahorra tecleado cuando hay muchos literales de cadena presentes en el código.

El siguiente código crea un QByteArray:

using namespace Qt::StringLiterals;

auto str = "hello"_ba;

Esta función se introdujo en Qt 6.4.

Véase también Qt::Literals::StringLiterals.

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

Devuelve una matriz de bytes que es el resultado de concatenar el byte a1 y la matriz de bytes a2.

Se trata de una función sobrecargada.

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

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

Devuelve una matriz de bytes que es el resultado de concatenar lhs y rhs.

Estas funciones se introdujeron en Qt 6.9.

Véase también QByteArray::operator+=().

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

Devuelve una matriz de bytes que es el resultado de concatenar la matriz de bytes a1 y el byte a2.

Se trata de una función sobrecargada.

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

Devuelve una matriz de bytes que es el resultado de concatenar la matriz de bytes a1 y la matriz de bytes a2.

Véase también QByteArray::operator+=().

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

Devuelve una matriz de bytes que es el resultado de concatenar la matriz de bytes a1 y '\0'-terminada cadena a2.

Se trata de una función sobrecargada.

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

Devuelve una matriz de bytes que es el resultado de concatenar '\0'-cadena terminada a1 y matriz de bytes a2.

Se trata de una función sobrecargada.

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

Devuelve true si la matriz de bytes lhs es léxicamente menor que la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente menor que la cadena '\0'terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si '\0'-terminated string lhs es léxicamente menor que byte array rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

QDataStream &operator<<(QDataStream &out, const QByteArray &ba)

Escribe la matriz de bytes ba en el flujo out y devuelve una referencia al flujo.

Véase también Serializar tipos de datos Qt.

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

Devuelve true si la matriz de bytes lhs es léxicamente menor o igual que la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente menor o igual que la cadena '\0'-terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si '\0'-terminated string lhs es léxicamente menor o igual que byte array rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es igual a la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es igual a la cadena '\0'terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la cadena terminada en '\0' lhs es igual a la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente mayor que la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente mayor que la cadena '\0'terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si '\0'-terminated string lhs es léxicamente mayor que byte array rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente mayor o igual que la matriz de bytes rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si la matriz de bytes lhs es léxicamente mayor o igual que la cadena '\0'-terminada rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

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

Devuelve true si '\0'-terminated string lhs es léxicamente mayor o igual que byte array rhs; en caso contrario devuelve false.

Esta es una función sobrecargada.

Véase también QByteArray::compare().

QDataStream &operator>>(QDataStream &in, QByteArray &ba)

Lee una matriz de bytes en ba desde el flujo in y devuelve una referencia al flujo.

Véase también Serialización de tipos de datos Qt.

Documentación de macros

QByteArrayLiteral(ba)

La macro genera los datos para un QByteArray a partir de la cadena literal ba en tiempo de compilación. La creación de un QByteArray a partir de él es gratuita en este caso, y los datos de la matriz de bytes generada se almacenan en el segmento de sólo lectura del archivo objeto compilado.

Por ejemplo:

QByteArray ba = QByteArrayLiteral("byte array contents");

El uso de QByteArrayLiteral en lugar de un literal de cadena C++ entre comillas dobles puede acelerar significativamente la creación de instancias de QByteArray a partir de datos conocidos en tiempo de compilación.

Véase también QStringLiteral.

QT_NO_CAST_FROM_BYTEARRAY

Desactiva las conversiones automáticas de QByteArray a const char * o const void *.

Véase también QT_NO_CAST_TO_ASCII y QT_NO_CAST_FROM_ASCII.

[since 6.8] QT_NO_QSNPRINTF

Definir esta macro elimina la disponibilidad de las funciones qsnprintf() y qvsnprintf(). Consulte la documentación de las funciones para saber por qué puede querer desactivarlas.

Esta macro se introdujo en Qt 6.8.

Véase también qsnprintf() y 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.