Sur cette page

QString Class

La classe QString fournit une chaîne de caractères Unicode. Plus d'informations...

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

Cette classe est fortement comparable.

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

Cette classe est fortement comparable à QByteArray, QByteArrayView, et const char *.

Lors de la comparaison avec les tableaux d'octets, leur contenu est interprété comme UTF-8.

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

Types publics

ConstIterator
Iterator
enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC }
enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps }
flags SectionFlags
const_iterator
const_pointer
const_reference
const_reverse_iterator
difference_type
iterator
pointer
reference
reverse_iterator
size_type
value_type

Fonctions publiques

QString()
QString(QChar ch)
QString(QLatin1StringView str)
(since 6.8) QString(QStringView sv)
QString(const QByteArray &ba)
QString(const char *str)
(since 6.1) QString(const char8_t *str)
QString(const QChar *unicode, qsizetype size = -1)
QString(qsizetype size, QChar ch)
QString(const QString &autre)
QString(QString &&autre)
~QString()
QString &append(const QString &str)
QString &append(QChar ch)
QString &append(QLatin1StringView str)
(since 6.0) QString &append(QStringView v)
(since 6.5) QString &append(QUtf8StringView str)
QString &append(const QByteArray &ba)
QString &append(const char *str)
QString &append(const QChar *str, qsizetype len)
QString arg(Args &&... args) const
QString arg(const T&a, int fieldWidth = 0, QChar fillChar = u' ') const
QString arg(T a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const
QString arg(T a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const
(since 6.6) QString &assign(QAnyStringView v)
(since 6.6) QString &assign(InputIterator first, InputIterator last)
(since 6.6) QString &assign(qsizetype n, QChar c)
const QChar at(qsizetype position) const
QChar &back()
QChar back() const
QString::iterator begin()
QString::const_iterator begin() const
qsizetype capacity() const
QString::const_iterator cbegin() const
QString::const_iterator cend() const
void chop(qsizetype n)
QString chopped(qsizetype len) &&
QString chopped(qsizetype len) const &
void clear()
int compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString::const_iterator constBegin() const
const QChar *constData() const
QString::const_iterator constEnd() const
bool contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype count(const QRegularExpression &re) const
qsizetype count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.0) qsizetype count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString::const_reverse_iterator crbegin() const
QString::const_reverse_iterator crend() const
QChar *data()
const QChar *data() const
QString::iterator end()
QString::const_iterator end() const
bool endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.1) QString::iterator erase(QString::const_iterator first, QString::const_iterator last)
(since 6.5) QString::iterator erase(QString::const_iterator it)
QString &fill(QChar ch, qsizetype size = -1)
(since 6.0) QString first(qsizetype n) &&
(since 6.0) QString first(qsizetype n) const &
QChar &front()
QChar front() const
qsizetype indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
qsizetype indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString &insert(qsizetype position, const QString &str)
QString &insert(qsizetype position, QChar ch)
QString &insert(qsizetype position, QLatin1StringView str)
(since 6.0) QString &insert(qsizetype position, QStringView str)
(since 6.5) QString &insert(qsizetype position, QUtf8StringView str)
QString &insert(qsizetype position, const QByteArray &str)
QString &insert( position de type qsiz, const char *str)
QString &insert(qsizetype position, const QChar *unicode, qsizetype taille)
bool isEmpty() const
bool isLower() const
bool isNull() const
bool isRightToLeft() const
bool isUpper() const
bool isValidUtf16() const
(since 6.0) QString last(qsizetype n) &&
(since 6.0) QString last(qsizetype n) const &
qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
qsizetype lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.3) qsizetype lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.2) qsizetype lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.2) qsizetype lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.2) qsizetype lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
(since 6.2) qsizetype lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString left(qsizetype n) &&
QString left(qsizetype n) const &
QString leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
qsizetype length() const
(since 6.0) int localeAwareCompare(QStringView other) const
int localeAwareCompare(const QString &autre) const
(since 6.8) qsizetype max_size() const
QString mid(qsizetype position, qsizetype n = -1) &&
QString mid(qsizetype position, qsizetype n = -1) const &
QString normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const
(since 6.10) QString &nullTerminate()
(since 6.10) QString nullTerminated() &&
(since 6.10) QString nullTerminated() const &
QString &prepend(const QString &str)
QString &prepend(QChar ch)
QString &prepend(QLatin1StringView str)
(since 6.0) QString &prepend(QStringView str)
(since 6.5) QString &prepend(QUtf8StringView str)
QString &prepend(const QByteArray &ba)
QString &prepend(const char *str)
QString &prepend(const QChar *str, qsizetype len)
void push_back(const QString &autre)
void push_back(QChar ch)
void push_front(const QString &autre)
void push_front(QChar ch)
QString::reverse_iterator rbegin()
QString::const_reverse_iterator rbegin() const
QString &remove(const QRegularExpression &re)
QString &remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &remove(qsizetype position, qsizetype n)
QString &remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
(since 6.5) QString &removeAt(qsizetype pos)
(since 6.5) QString &removeFirst()
(since 6.1) QString &removeIf(Prédicat pred)
(since 6.5) QString &removeLast()
QString::reverse_iterator rend()
QString::const_reverse_iterator rend() const
QString repeated(qsizetype times) const
QString &replace(qsizetype position, qsizetype n, const QString &after)
QString &replace(const QRegularExpression &re, const QString &after)
QString &replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QLatin1StringView avant, QLatin1StringView après, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(QLatin1StringView avant, const QString &après, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString &replace(qsizetype position, qsizetype n, QChar after)
QString &replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen)
QString &replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
void reserve(qsizetype size)
void resize(qsizetype taille)
void resize(qsizetype newSize, QChar fillChar)
(since 6.8) void resizeForOverwrite(qsizetype taille)
QString right(qsizetype n) &&
QString right(qsizetype n) const &
QString rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const
QString section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
QString section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
QString section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const
QString &setNum(int n, int base = 10)
QString &setNum(long n, int base = 10)
QString &setNum(qlonglong n, int base = 10)
QString &setNum(qulonglong n, int base = 10)
QString &setNum(short n, int base = 10)
QString &setNum(uint n, int base = 10)
QString &setNum(ulong n, int base = 10)
QString &setNum(ushort n, int base = 10)
QString &setNum(double n, char format = 'g', int precision = 6)
QString &setNum(float n, char format = 'g', int precision = 6)
QString &setRawData(const QChar *unicode, qsizetype size)
QString &setUnicode(const QChar *unicode, qsizetype size)
(since 6.9) QString &setUnicode(const char16_t *unicode, qsizetype size)
(since 6.9) QString &setUtf16(const char16_t *unicode, qsizetype size)
void shrink_to_fit()
QString simplified() const
qsizetype size() const
(since 6.8) QString &slice(qsizetype pos, qsizetype n)
(since 6.8) QString &slice(qsizetype pos)
(since 6.0) QString sliced(qsizetype pos, qsizetype n) &&
(since 6.0) QString sliced(qsizetype pos, qsizetype n) const &
(since 6.0) QString sliced(qsizetype pos) &&
(since 6.0) QString sliced(qsizetype pos) const &
QStringList split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
QStringList split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
void squeeze()
bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
void swap(QString &autre)
CFStringRef toCFString() const
QString toCaseFolded() const
double toDouble(bool *ok = nullptr) const
(since 6.6) emscripten::val toEcmaString() const
float toFloat(bool *ok = nullptr) const
QString toHtmlEscaped() const
int toInt(bool *ok = nullptr, int base = 10) const
QByteArray toLatin1() const
QByteArray toLocal8Bit() const
long toLong(bool *ok = nullptr, int base = 10) const
qlonglong toLongLong(bool *ok = nullptr, int base = 10) const
QString toLower() const
NSString *toNSString() const
court toShort(bool *ok = nullptr, int base = 10) const
std::string toStdString() const
std::u16string toStdU16String() const
std::u32string toStdU32String() const
std::wstring toStdWString() 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
QList<uint> toUcs4() const
QString toUpper() const
QByteArray toUtf8() const
qsizetype toWCharArray(wchar_t *array) const
(since 6.0) auto tokenize(Aiguille &&sep, Drapeaux... drapeaux) &&
(since 6.0) auto tokenize(Aiguille &&sep, Drapeaux... drapeaux) const &&
(since 6.0) auto tokenize(Aiguille &&sep, Drapeaux... drapeaux) const &
QString trimmed() const
void truncate(qsizetype position)
const QChar *unicode() const
const ushort *utf16() const
(since 6.7) operator std::u16string_view() const
QString &operator+=(const QString &autre)
QString &operator+=(QChar ch)
QString &operator+=(QLatin1StringView str)
(since 6.0) QString &operator+=(QStringView str)
(since 6.5) QString &operator+=(QUtf8StringView str)
QString &operator+=(const QByteArray &ba)
QString &operator+=(const char *str)
QString &operator=(QString &&autre)
QString &operator=(const QString &autre)
QString &operator=(QChar ch)
QString &operator=(QLatin1StringView str)
QString &operator=(const QByteArray &ba)
QString &operator=(const char *str)
QChar &operator[](qsizetype position)
const QChar operator[](qsizetype position) const

Membres publics statiques

QString asprintf(const char *cformat, ...)
int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
int compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QString fromCFString(CFStringRef string)
(since 6.6) QString fromEcmaString(emscripten::val jsString)
QString fromLatin1(const char *str, qsizetype size)
(since 6.0) QString fromLatin1(QByteArrayView str)
QString fromLatin1(const QByteArray &str)
QString fromLocal8Bit(const char *str, qsizetype size)
(since 6.0) QString fromLocal8Bit(QByteArrayView str)
QString fromLocal8Bit(const QByteArray &str)
QString fromNSString(const NSString *string)
(since 6.10) QString fromRawData(const char16_t *unicode, qsizetype size)
QString fromRawData(const QChar *unicode, qsizetype taille)
QString fromStdString(const std::string &str)
QString fromStdU16String(const std::u16string &str)
QString fromStdU32String(const std::u32string &str)
QString fromStdWString(const std::wstring &str)
QString fromUcs4(const char32_t *unicode, qsizetype size = -1)
QString fromUtf8(const char *str, qsizetype size)
(since 6.0) QString fromUtf8(QByteArrayView str)
QString fromUtf8(const QByteArray &str)
(since 6.1) QString fromUtf8(const char8_t *str)
(since 6.0) QString fromUtf8(const char8_t *str, qsizetype size)
QString fromUtf16(const char16_t *unicode, qsizetype size = -1)
QString fromWCharArray(const wchar_t *string, qsizetype size = -1)
int localeAwareCompare(const QString &s1, const QString &s2)
(since 6.0) int localeAwareCompare(QStringView s1, QStringView s2)
(since 6.8) qsizetype maxSize()
QString number(long n, int base = 10)
QString number(double n, char format = 'g', int precision = 6)
QString number(int n, int base = 10)
QString number(qlonglong n, int base = 10)
QString number(qulonglong n, int base = 10)
QString number(uint n, int base = 10)
QString number(ulong n, int base = 10)
QString vasprintf(const char *cformat, va_list ap)
(since 6.1) qsizetype erase(QString &s, const T &t)
(since 6.1) qsizetype erase_if(QString &s, Predicate pred)
bool operator!=(const QByteArray &lhs, const QString &rhs)
bool operator!=(const QString &lhs, const QString &rhs)
bool operator!=(const char *const &lhs, const QString &rhs)
bool operator!=(const QString &lhs, const QByteArray &rhs)
bool operator!=(const QString &lhs, const QLatin1StringView &rhs)
bool operator!=(const QString &lhs, const char *const &rhs)
(since 6.4) QString operator""_s(const char16_t *str, size_t size)
QString operator+(QString &&s1, const QString &s2)
(since 6.9) QString operator+(QStringView lhs, const QString &rhs)
(since 6.9) QString operator+(const QString &lhs, QStringView rhs)
QString operator+(const QString &s1, const QString &s2)
QString operator+(const QString &s1, const char *s2)
QString operator+(const char *s1, const QString &s2)
bool operator<(const QByteArray &lhs, const QString &rhs)
bool operator<(const char *const &lhs, const QString &rhs)
bool operator<(const QLatin1StringView &lhs, const QString &rhs)
bool operator<(const QString &lhs, const QByteArray &rhs)
bool operator<(const QString &lhs, const QLatin1StringView &rhs)
bool operator<(const QString &lhs, const QString &rhs)
bool operator<(const QString &lhs, const char *const &rhs)
QDataStream &operator<<(QDataStream &stream, const QString &string)
bool operator<=(const QByteArray &lhs, const QString &rhs)
bool operator<=(const QString &lhs, const QString &rhs)
bool operator<=(const char *const &lhs, const QString &rhs)
bool operator<=(const QLatin1StringView &lhs, const QString &rhs)
bool operator<=(const QString &lhs, const QByteArray &rhs)
bool operator<=(const QString &lhs, const QLatin1StringView &rhs)
bool operator<=(const QString &lhs, const char *const &rhs)
bool operator==(const QByteArray &lhs, const QString &rhs)
bool operator==(const QLatin1StringView &lhs, const QString &rhs)
bool operator==(const QString &lhs, const QByteArray &rhs)
bool operator==(const QString &lhs, const QLatin1StringView &rhs)
bool operator==(const QString &lhs, const QString &rhs)
bool operator==(const QString &lhs, const char *const &rhs)
bool operator==(const char *const &lhs, const QString &rhs)
bool operator>(const QByteArray &lhs, const QString &rhs)
bool operator>(const QString &lhs, const QString &rhs)
bool operator>(const char *const &lhs, const QString &rhs)
bool operator>(const QLatin1StringView &lhs, const QString &rhs)
bool operator>(const QString &lhs, const QByteArray &rhs)
bool operator>(const QString &lhs, const QLatin1StringView &rhs)
bool operator>(const QString &lhs, const char *const &rhs)
bool operator>=(const QByteArray &lhs, const QString &rhs)
bool operator>=(const QString &lhs, const QString &rhs)
bool operator>=(const char *const &lhs, const QString &rhs)
bool operator>=(const QLatin1StringView &lhs, const QString &rhs)
bool operator>=(const QString &lhs, const QByteArray &rhs)
bool operator>=(const QString &lhs, const QLatin1StringView &rhs)
bool operator>=(const QString &lhs, const char *const &rhs)
QDataStream &operator>>(QDataStream &stream, QString &string)

Macros

QStringLiteral(str)
QT_NO_CAST_FROM_ASCII
QT_NO_CAST_TO_ASCII
QT_RESTRICTED_CAST_FROM_ASCII
const char *qPrintable(const QString &str)
const wchar_t *qUtf16Printable(const QString &str)
const char *qUtf8Printable(const QString &str)

Description détaillée

QString stocke une chaîne de caractères de 16 bits QChars, où chaque QChar correspond à une unité de code UTF-16. (Les caractères Unicode dont les valeurs de code sont supérieures à 65535 sont stockés en utilisant des paires de substitution, c'est-à-dire deux QChars consécutifs).

Unicode est une norme internationale qui prend en charge la plupart des systèmes d'écriture utilisés aujourd'hui. Il s'agit d'un surensemble de US-ASCII (ANSI X3.4-1986) et de Latin-1 (ISO 8859-1), et tous les caractères US-ASCII/Latin-1 sont disponibles aux mêmes positions de code.

En coulisses, QString utilise le partage implicite (copie sur écriture) pour réduire l'utilisation de la mémoire et éviter la copie inutile de données. Cela permet également de réduire la surcharge inhérente au stockage de caractères de 16 bits au lieu de 8 bits.

Outre QString, Qt fournit également la classe QByteArray pour stocker des octets bruts et des chaînes traditionnelles de 8 bits terminées par '\0'. Dans la plupart des cas, QString est la classe à utiliser. Elle est utilisée dans l'ensemble de l'API Qt et la prise en charge de l'Unicode garantit que vos applications sont faciles à traduire si vous souhaitez étendre le marché de votre application à un moment donné. Les deux principaux cas où QByteArray est approprié sont ceux où vous devez stocker des données binaires brutes et ceux où la conservation de la mémoire est critique (comme dans les systèmes embarqués).

Initialisation d'une chaîne de caractères

L'une des façons d'initialiser une QString consiste à passer une adresse const char * à son constructeur. Par exemple, le code suivant crée une QString de taille 5 contenant les données "Hello" :

QString str = "Hello";

QString convertit les données const char * en Unicode à l'aide de la fonction fromUtf8().

Dans toutes les fonctions QString qui prennent des paramètres const char *, la chaîne const char * est interprétée comme une chaîne de style C classique terminée par '\\0'. Sauf si le nom de la fonction indique ouvertement un autre encodage, les paramètres const char * sont supposés être encodés en UTF-8.

Depuis Qt 6.4, il est également possible d'initialiser les QStrings en utilisant les opérateurs littéraux Qt::Literals::StringLiterals::operator""_s() et Qt::Literals::StringLiterals::operator""_L1(). Dans de nombreux cas, l'utilisation des opérateurs littéraux aboutit à more efficient string construction.

Vous pouvez également fournir des données de chaîne sous la forme d'un tableau de QChars :

static const QChar data[4] = {QChar(0x0055), QChar(0x006e), QChar(0x10e3), QChar(0x03a3) };
QString str(data, 4);

QString effectue une copie profonde des données QChar, de sorte que vous pouvez les modifier ultérieurement sans subir d'effets de bord. Vous pouvez éviter de faire une copie profonde des données de caractères en utilisant QStringView ou QString::fromRawData() à la place.

Une autre approche consiste à définir la taille de la chaîne à l'aide de resize() et à initialiser les données caractère par caractère. QString utilise des index basés sur 0, tout comme les tableaux C++. Pour accéder au caractère à une position d'index particulière, vous pouvez utiliser operator[](). Pour les chaînes nonconst, operator[]() renvoie une référence à un caractère qui peut être utilisé du côté gauche d'une affectation. Par exemple :

QString str;
str.resize(4);

str[0] = QChar('U');
str[1] = QChar('n');
str[2] = QChar(0x10e3);
str[3] = QChar(0x03a3);

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

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

La fonction at() peut être plus rapide que operator[]() car elle ne provoque jamais de copie profonde. Vous pouvez également utiliser les fonctions first(), last() ou sliced() pour extraire plusieurs caractères à la fois.

Une chaîne de caractères QString peut contenir des caractères '\0' (QChar::Null). La fonction size() renvoie toujours la taille de la chaîne entière, y compris les caractères '\0' intégrés.

Après un appel à la fonction resize(), les caractères nouvellement alloués ont des valeurs indéfinies. Pour donner une valeur particulière à tous les caractères de la chaîne, utilisez la fonction fill().

QString fournit des dizaines de surcharges conçues pour simplifier l'utilisation des chaînes de caractères. Par exemple, si vous souhaitez comparer une QString à une chaîne littérale, vous pouvez écrire un code comme celui-ci et il fonctionnera comme prévu :

QString str;

if (str == "auto" || str == "extern"
        || str == "static" || str == "register") {
    // ...
}

Vous pouvez également passer des chaînes littérales à des fonctions qui prennent des QStrings comme arguments, en invoquant le constructeur QString(const char *). De même, vous pouvez passer une QString à une fonction qui prend un argument const char * en utilisant la macro qPrintable(), qui renvoie la QString donnée sous la forme d'un const char *. Cela équivaut à appeler toLocal8Bit().constData() sur la QString.

Manipulation des données des chaînes de caractères

QString fournit les fonctions de base suivantes pour modifier les données des caractères : append(), prepend(), insert(), replace() et remove(). Par exemple :

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

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

Lorsque les fonctions de modification des données augmentent la taille de la chaîne, QString peut réattribuer la mémoire dans laquelle elle conserve ses données. Dans ce cas, QString s'agrandit d'un nombre de caractères supérieur à ses besoins immédiats afin de disposer d'un espace pour une expansion ultérieure sans réaffectation jusqu'à ce que la taille de la chaîne ait augmenté de manière significative.

Les fonctions insert(), remove() et, lors du remplacement d'une sous-chaîne par une autre de taille différente, replace() peuvent être lentes(temps linéaire) pour les grandes chaînes, car elles nécessitent le déplacement de nombreux caractères de la chaîne d'au moins une position en mémoire.

Si vous construisez progressivement une QString et que vous savez à l'avance combien de caractères la QString contiendra, vous pouvez appeler reserve(), en demandant à la QString de préallouer une certaine quantité de mémoire. Vous pouvez également appeler capacity() pour connaître la quantité de mémoire allouée à la chaîne de caractères.

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

Remarque : on ne peut pas s'attendre à ce que les itérateurs sur une chaîne QString et les références à des caractères individuels à l'intérieur d'une chaîne QString restent valides lorsqu'une méthode de la chaîne QString qui n'est pasconst est appelée. L'accès à un tel itérateur ou à une telle référence après l'appel à une méthode nonconst entraîne un comportement non défini. Lorsque la stabilité d'une fonctionnalité similaire à celle d'un itérateur est requise, vous devez utiliser des index plutôt que des itérateurs, car ils ne sont pas liés à l'état interne de QString et ne sont donc pas invalidés.

Remarque : en raison du partage implicite, le premier opérateur ou fonction nonconst utilisé sur une QString donnée peut entraîner une copie profonde de ses données en interne. Cela invalide tous les itérateurs sur la chaîne et les références à des caractères individuels à l'intérieur de celle-ci. N'appelez pas de fonctions non-const tout en conservant des itérateurs. L'accès à un itérateur ou à une référence après son invalidation entraîne un comportement indéfini. Pour plus d'informations, voir la section relative au problème du partage implicite de l'itérateur.

Il est souvent nécessaire de supprimer ou de simplifier l'espacement entre les caractères visibles d'une chaîne de caractères. Les caractères qui constituent cet espacement sont ceux pour lesquels isSpace() renvoie true, comme l'espace simple ' ', la tabulation horizontale '\\t' et la nouvelle ligne '\\n'. Pour obtenir une copie d'une chaîne de caractères sans aucun espace entre le début et la fin, utilisez trimmed(). Pour remplacer également chaque séquence de caractères d'espacement dans la chaîne par un simple espace, ' ', utilisez simplified().

Si vous souhaitez trouver toutes les occurrences d'un caractère particulier ou d'une sous-chaîne dans une chaîne de caractères, utilisez les fonctions indexOf() ou lastIndexOf(). La première effectue une recherche vers l'avant, la seconde une recherche vers l'arrière. La première effectue une recherche vers l'avant, la seconde une recherche vers l'arrière. On peut leur indiquer une position d'index à partir de laquelle commencer la recherche. Chacune renvoie la position d'index du caractère ou de la sous-chaîne si elle le trouve ; sinon, elle renvoie -1. Par exemple, voici une boucle typique qui recherche toutes les occurrences d'une sous-chaîne particulière :

QString str = "Nous devons être <b>gras</b>, très <b>gras</b>"; qsizetype j = 0;while ((j = str.indexOf("<b>", j)) !=-1) {    qDebug() << "Found <b> tag at index position" << j;
   ++j; }

QString fournit de nombreuses fonctions pour convertir les nombres en chaînes et les chaînes en nombres. Voir les fonctions arg(), les fonctions setNum(), les fonctions statiques number() et les fonctions toInt(), toDouble() et autres fonctions similaires.

Pour obtenir une version majuscule ou minuscule d'une chaîne, utilisez toUpper() ou toLower().

Les listes de chaînes de caractères sont gérées par la classe QStringList. Vous pouvez diviser une chaîne en une liste de chaînes à l'aide de la fonction split() et joindre une liste de chaînes en une seule chaîne avec un séparateur facultatif à l'aide de QStringList::join(). Vous pouvez obtenir une liste filtrée à partir d'une liste de chaînes en sélectionnant les entrées qui contiennent une sous-chaîne particulière ou qui correspondent à une QRegularExpression. Voir QStringList::filter() pour plus de détails.

Interrogation des données de chaînes

Pour savoir si une chaîne de caractères commence ou se termine par une sous-chaîne particulière, utilisez startsWith() ou endsWith(). Pour vérifier si une chaîne de caractères contient un caractère ou une sous-chaîne spécifique, utilisez la fonction contains(). Pour connaître le nombre d'occurrences d'un caractère ou d'une sous-chaîne dans une chaîne, utilisez la fonction count().

Pour obtenir un pointeur sur les données de caractères réelles, appelez data() ou constData(). Ces fonctions renvoient un pointeur au début des données QChar. La validité du pointeur est garantie jusqu'à ce qu'une fonction autre queconst soit appelée sur la QString.

Comparaison de chaînes de caractères

Les chaînes de caractères peuvent être comparées à l'aide d'opérateurs surchargés tels que operator<(), operator<=(), operator==(), operator>=(), etc. La comparaison est basée exclusivement sur l'ordre lexicographique des deux chaînes, considérées comme des séquences d'unités de code UTF-16. La fonction QString::localeAwareCompare() est généralement un meilleur choix pour trier les chaînes de l'interface utilisateur, lorsqu'une telle comparaison est disponible.

Lorsque Qt est lié à la bibliothèque ICU (ce qui est généralement le cas), son tri tenant compte des spécificités locales est utilisé. Dans le cas contraire, des solutions spécifiques à la plate-forme sont utilisées :

  • Sous Windows, localeAwareCompare() utilise les paramètres régionaux de l'utilisateur, tels qu'ils sont définis dans les options regional et language de Control Panel.
  • Sur macOS et iOS, localeAwareCompare() compare en fonction du paramètre Order for sorted lists dans le panneau International preferences.
  • Sur les autres systèmes de type Unix, la comparaison s'appuie sur la bibliothèque système strcoll().

Conversion entre des données de chaînes encodées et QString

QString fournit les fonctions suivantes qui renvoient une version const char * de la chaîne sous la forme QByteArray: toUtf8(), toLatin1() et toLocal8Bit().

  • toLatin1() renvoie une chaîne de 8 bits codée en Latin-1 (ISO 8859-1).
  • toUtf8() renvoie une chaîne de 8 bits codée en UTF-8. UTF-8 est un surensemble de US-ASCII (ANSI X3.4-1986) qui prend en charge l'ensemble du jeu de caractères Unicode par le biais de séquences multioctets.
  • toLocal8Bit() renvoie une chaîne de 8 bits en utilisant l'encodage local du système. C'est la même chose que toUtf8() sur les systèmes Unix.

Pour convertir l'un de ces encodages, QString fournit fromLatin1(), fromUtf8() et fromLocal8Bit(). D'autres encodages sont pris en charge par les classes QStringEncoder et QStringDecoder.

Comme indiqué ci-dessus, QString fournit de nombreuses fonctions et opérateurs qui facilitent l'interopérabilité avec les chaînes const char *. Mais cette fonctionnalité est une arme à double tranchant : elle rend QString plus pratique à utiliser si toutes les chaînes sont en US-ASCII ou Latin-1, mais il y a toujours le risque qu'une conversion implicite de ou vers const char * soit effectuée en utilisant le mauvais encodage 8 bits. Pour minimiser ces risques, vous pouvez désactiver ces conversions implicites en définissant certains des symboles de préprocesseur suivants :

  • QT_NO_CAST_FROM_ASCII désactive les conversions automatiques des chaînes de caractères C et des pointeurs vers Unicode.
  • QT_RESTRICTED_CAST_FROM_ASCII autorise les conversions automatiques à partir de caractères C et de tableaux de caractères, mais désactive les conversions automatiques à partir de pointeurs de caractères vers Unicode.
  • QT_NO_CAST_TO_ASCII désactive la conversion automatique de QString en chaînes de caractères C.

Vous devez alors appeler explicitement fromUtf8(), fromLatin1() ou fromLocal8Bit() pour construire une chaîne QString à partir d'une chaîne de 8 bits, ou utiliser la classe légère QLatin1StringView. En voici un exemple :

// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...
QString url = "https://www.unicode.org/"_L1;

De même, vous devez appeler explicitement toLatin1(), toUtf8() ou toLocal8Bit() pour convertir la chaîne de caractères Q en chaîne de caractères de 8 bits.

Note pour les programmeurs C
En raison du système de types du C++ et du fait que la chaîne Q est implicitement partagée, les chaînes Q peuvent être traitées comme des chaînes intou d'autres types de base. Par exemple, les QStrings peuvent être traitées comme des s ou d'autres types de base :
QString Widget::boolToString(bool b)
{
    QString result;
    if (b)
        result = "True";
    else
        result = "False";
    return result;
}

La variable result est une variable normale allouée sur la pile. Lorsque return est appelé, et parce que nous retournons une valeur, le constructeur de copie est appelé et une copie de la chaîne est retournée. Aucune copie réelle n'a lieu grâce au partage implicite.

Distinction entre les chaînes nulles et vides

Pour des raisons historiques, QString fait la distinction entre les chaînes nulles et les chaînes vides. Une chaîne nulle est une chaîne initialisée à l'aide du constructeur par défaut de QString ou en passant nullptr au constructeur. Une chaîne vide est une chaîne de taille 0. Une chaîne nulle est toujours vide, mais une chaîne vide n'est pas nécessairement nulle :

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

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

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

Toutes les fonctions, à l'exception de isNull(), traitent les chaînes nulles de la même manière que les chaînes vides. Par exemple, toUtf8().constData() renvoie un pointeur valide (pas nullptr) vers un caractère '\0' pour une chaîne nulle. Nous vous recommandons de toujours utiliser la fonction isEmpty() et d'éviter isNull().

Formats des nombres

Lorsqu'un spécificateur de format QString::arg() '%' inclut le qualificateur de locale 'L' et que la base est dix (par défaut), la locale par défaut est utilisée. Elle peut être définie à l'aide de QLocale::setDefault(). Pour un contrôle plus précis des représentations locales des nombres, voir QLocale::toString(). Tous les autres formatages de nombres effectués par QString suivent la représentation des nombres de la locale C.

Lorsque QString::arg() applique un espacement à gauche aux nombres, le caractère de remplissage '0' est traité de manière spéciale. Si le nombre est négatif, le signe moins apparaît avant le zéro. Si le champ est localisé, le caractère zéro approprié à la localité est utilisé à la place de '0'. Pour les nombres à virgule flottante, ce traitement spécial ne s'applique que si le nombre est fini.

Formats des nombres à virgule flottante

Dans les fonctions membres (par exemple, arg() et number()) qui formatent les nombres à virgule flottante (float ou double) en tant que chaînes de caractères, la représentation utilisée peut être contrôlée par un choix de format et de précision, dont la signification est la même que pour QLocale::toString(double, char, int).

Si le format choisi comprend un exposant, les formes localisées suivent la convention locale sur les chiffres de l'exposant. Pour les formats non localisés, l'exposant indique son signe et comprend au moins deux chiffres, avec un espacement à gauche de zéro si nécessaire.

Une construction de chaîne plus efficace

De nombreuses chaînes de caractères sont connues à la compilation. Le constructeur QString à partir de chaînes de caractères C++ copiera le contenu de la chaîne, en le traitant comme UTF-8. Cela nécessite une allocation de mémoire et un réencodage des données de la chaîne, opérations qui se produisent au moment de l'exécution. Si les données de la chaîne sont connues au moment de la compilation, vous pouvez utiliser la macro QStringLiteral ou une autre operator""_s pour créer la charge utile de QString au moment de la compilation.

En utilisant l'opérateur QString '+', il est facile de construire une chaîne complexe à partir de plusieurs sous-chaînes. Vous écrirez souvent du code comme celui-ci :

// Required for using the '_L1' string literal.
using namespace Qt::StringLiterals;
// ...

    QString foo;
    QString type = "long";

    foo = "vector<"_L1 + type + ">::iterator"_L1;

    if (foo.startsWith("(" + type + ") 0x"))
        ...

Il n'y a rien de mal à ces constructions de chaînes, mais il y a quelques inefficacités cachées :

Premièrement, l'utilisation répétée de l'opérateur '+' peut entraîner de multiples allocations de mémoire. Lors de la concaténation de n sous-chaînes, où n > 2, il peut y avoir jusqu'à n - 1 appels à l'allocateur de mémoire.

Ces allocations peuvent être optimisées par une classe interne QStringBuilder. Cette classe est marquée comme interne et n'apparaît pas dans la documentation, car vous n'êtes pas censé l'instancier dans votre code. Son utilisation sera automatique, comme décrit ci-dessous.

QStringBuilder utilise des modèles d'expression et réimplémente l'opérateur '%' de sorte que lorsque vous utilisez '%' pour la concaténation de chaînes au lieu de '+', les concaténations de sous-chaînes multiples seront reportées jusqu'à ce que le résultat final soit sur le point d'être assigné à une QString. À ce stade, la quantité de mémoire requise pour le résultat final est connue. L'allocateur de mémoire est alors appelé une fois pour obtenir l'espace nécessaire, et les sous-chaînes y sont copiées une par une.

Une efficacité supplémentaire est obtenue grâce à l'inlining et à la réduction du comptage des références (la QString créée à partir de QStringBuilder a un comptage des références de 1, alors que QString::append() a besoin d'un test supplémentaire).

Il existe deux façons d'accéder à cette méthode améliorée de construction de chaînes de caractères. La première consiste à inclure QStringBuilder partout où vous souhaitez l'utiliser et à utiliser l'opérateur '%' au lieu de '+' lors de la concaténation de chaînes de caractères :

    #include <QStringBuilder>

    QString hello("hello");
    QStringView el = QStringView{ hello }.sliced(2, 3);
    QString message =  hello % el % "world"_L1 % QChar('!');

Une approche plus globale, plus pratique mais pas entièrement compatible avec le code source, consiste à définir QT_USE_QSTRINGBUILDER (en l'ajoutant aux drapeaux du compilateur) au moment de la compilation. Ainsi, la concaténation de chaînes avec '+' fonctionnera de la même manière que QStringBuilder's '%' .

Note : L'utilisation de la déduction automatique de type (par exemple, en utilisant le mot-clé auto ) avec le résultat de la concaténation de chaînes lorsque QStringBuilder est activé montrera que la concaténation est en effet un objet d'une spécialisation de QStringBuilder :

    QString str("QStringBuilder");

    // "s" type is deduced as QStringBuilder<...>
    auto s = "Like hot glue, " % str % " concatenates strings";

    // Similarly the return type of this lambda is deduced as QStringBuilder<...>
    auto concatenateStr = []() {
        return "Like hot glue, " % str % " concatenates strings";
    };

Cela ne pose aucun problème, car QStringBuilder convertira implicitement en QString lorsque cela sera nécessaire. Si cela n'est pas souhaitable, il convient de spécifier les types nécessaires au lieu de laisser le compilateur les déduire :

    QString s = "Like hot glue, " % str % " concatenates strings";

    // With a lambda, specify a trailing return type:
    auto concatenateStr = []() -> QString {
        return "Like hot glue, " % str % " concatenates strings";
    };

Taille maximale et conditions de sortie de mémoire

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

En cas d'échec de l'allocation de mémoire, QString lance une exception std::bad_alloc si l'application a été compilée avec la prise en charge des exceptions. Les conditions de mémoire insuffisante dans les conteneurs Qt sont les seuls cas où Qt lèvera des exceptions. Si les exceptions sont désactivées, le fait de manquer de mémoire est un comportement non défini.

Note : Les systèmes d'exploitation cibles peuvent imposer des limites sur la quantité de mémoire qu'une application peut allouer, au total, ou sur la taille des allocations individuelles. Cela peut également restreindre la taille de la chaîne de caractères qu'une QString peut contenir. L'atténuation ou le contrôle du comportement provoqué par ces limites dépasse la portée de l'API Qt.

Voir aussi Quelle classe de chaîne utiliser, fromRawData(), QChar, QStringView, QLatin1StringView, et QByteArray.

Documentation sur les types de membres

QString::ConstIterator

Qt-style synonyme de QString::const_iterator.

QString::Iterator

Qt-style synonyme de QString::iterator.

enum QString::NormalizationForm

Cette énumération décrit les différentes formes normalisées du texte Unicode.

ConstanteValeurDescription
QString::NormalizationForm_D0Décomposition canonique
QString::NormalizationForm_C1Décomposition canonique suivie d'une composition canonique
QString::NormalizationForm_KD2Décomposition de compatibilité
QString::NormalizationForm_KC3Décomposition de compatibilité suivie d'une composition canonique

Voir également normalized() et l'annexe 15 de la norme Unicode.

enum QString::SectionFlag
flags QString::SectionFlags

Cette énumération spécifie les drapeaux qui peuvent être utilisés pour affecter divers aspects du comportement de la fonction section() en ce qui concerne les séparateurs et les champs vides.

ConstanteValeurDescription
QString::SectionDefault0x00Les champs vides sont comptés, les séparateurs de début et de fin ne sont pas pris en compte et le séparateur est comparé en tenant compte de la casse.
QString::SectionSkipEmpty0x01Traiter les champs vides comme s'ils n'existaient pas, c'est-à-dire qu'ils ne sont pas pris en compte en ce qui concerne le début et la fin.
QString::SectionIncludeLeadingSep0x02Inclure le séparateur de début (le cas échéant) dans la chaîne de résultats.
QString::SectionIncludeTrailingSep0x04Inclure le séparateur de fin (le cas échéant) dans la chaîne de résultats.
QString::SectionCaseInsensitiveSeps0x08Comparer le séparateur en tenant compte de la casse.

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

Voir également section().

QString::const_iterator

Voir aussi QString::iterator.

QString::const_pointer

Le typedef QString::const_pointer fournit un pointeur const de style STL à un élément QString (QChar).

QString::const_reference

QString::const_reverse_iterator

Voir également QString::reverse_iterator et QString::const_iterator.

QString::difference_type

QString::iterator

Voir aussi QString::const_iterator.

QString::pointer

Le typedef QString::pointer fournit un pointeur de style STL vers un élément QString (QChar).

QString::reference

QString::reverse_iterator

Voir également QString::const_reverse_iterator et QString::iterator.

QString::size_type

QString::value_type

Documentation des fonctions membres

[constexpr noexcept] QString::QString()

Construit une chaîne de caractères nulle. Les chaînes nulles sont également considérées comme vides.

Voir aussi isEmpty(), isNull(), et Distinction Between Null and Empty Strings.

QString::QString(QChar ch)

Construit une chaîne de taille 1 contenant le caractère ch.

QString::QString(QLatin1StringView str)

Construit une copie de la chaîne Latin-1 visualisée par str.

Voir aussi fromLatin1().

[explicit, since 6.8] QString::QString(QStringView sv)

Construit une chaîne initialisée avec les données de la vue chaîne.

La QString sera nulle si et seulement si sv est nulle.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi fromUtf16().

QString::QString(const QByteArray &ba)

Construit une chaîne initialisée avec le tableau d'octets ba. Le tableau d'octets donné est converti en Unicode à l'aide de fromUtf8().

Vous pouvez désactiver ce constructeur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Note : Tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000). Ce comportement est différent de celui de Qt 5.x.

Voir aussi fromLatin1(), fromLocal8Bit(), et fromUtf8().

QString::QString(const char *str)

Construit une chaîne initialisée avec la chaîne 8 bits str. Le pointeur const char donné est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver ce constructeur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Remarque : la définition de QT_RESTRICTED_CAST_FROM_ASCII désactive également ce constructeur, mais active un constructeur QString(const char (&ch)[N]) à la place. L'utilisation d'entrées non littérales, d'entrées contenant des caractères NUL ou des caractères autres que 7 bits n'est pas définie dans ce cas.

Voir aussi fromLatin1(), fromLocal8Bit() et fromUtf8().

[since 6.1] QString::QString(const char8_t *str)

Construit une chaîne initialisée avec la chaîne UTF-8 str. Le pointeur const char8_t donné est converti en Unicode à l'aide de la fonction fromUtf8().

Cette fonction a été introduite dans Qt 6.1.

Voir aussi fromLatin1(), fromLocal8Bit(), et fromUtf8().

[explicit] QString::QString(const QChar *unicode, qsizetype size = -1)

Construit une chaîne initialisée avec les premiers caractères size du tableau QChar unicode .

Si unicode vaut 0, une chaîne nulle est construite.

Si size est négatif, unicode est supposé pointer vers un tableau '\0'-terminé et sa longueur est déterminée dynamiquement. Le caractère nul de fin de chaîne n'est pas considéré comme faisant partie de la chaîne.

QString effectue une copie profonde des données de la chaîne. Les données unicode sont copiées telles quelles et la marque d'ordre des octets est préservée si elle est présente.

Voir aussi fromRawData().

QString::QString(qsizetype size, QChar ch)

Construit une chaîne de caractères de la valeur donnée size avec chaque caractère défini à ch.

Voir aussi fill().

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

Construit une copie de other.

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

Voir également operator=().

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

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

[noexcept] QString::~QString()

Détruit la chaîne.

QString &QString::append(const QString &str)

Ajoute la chaîne str à la fin de cette chaîne.

Exemple :

QString x = "free";
QString y = "dom";

x.append(y);
// x == "freedom"

Cela revient à utiliser la fonction insert() :

x.insert(x.size(), y);

La fonction append() est généralement très rapide(temps constant), car QString préalloue de l'espace supplémentaire à la fin des données de la chaîne afin qu'elle puisse croître sans avoir à réallouer la totalité de la chaîne à chaque fois.

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

QString &QString::append(QChar ch)

Ajoute le caractère ch à cette chaîne.

Cette fonction surcharge QString::append().

QString &QString::append(QLatin1StringView str)

Ajoute à cette chaîne la chaîne Latin-1 visualisée par str.

Cette fonction surcharge QString::append().

[since 6.0] QString &QString::append(QStringView v)

Ajoute la vue de la chaîne donnée v à cette chaîne et renvoie le résultat.

Cette fonction surcharge QString::append().

Cette fonction a été introduite dans Qt 6.0.

[since 6.5] QString &QString::append(QUtf8StringView str)

Ajoute la vue de la chaîne UTF-8 str à cette chaîne.

Cette fonction surcharge QString::append().

Cette fonction a été introduite dans Qt 6.5.

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

Ajoute le tableau d'octets ba à cette chaîne. Le tableau d'octets donné est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::append().

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

Ajoute la chaîne str à cette chaîne. Le pointeur const char donné est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::append().

QString &QString::append(const QChar *str, qsizetype len)

Ajoute à cette chaîne les caractères len du tableau QChar str .

Cette fonction surcharge QString::append().

template <typename... Args> QString QString::arg(Args &&... args) const

Remplace les occurrences de %N dans cette chaîne par l'argument correspondant de args. Les arguments ne sont pas positionnels : le premier des args remplace le %N par le N le plus bas (tous), le deuxième des args le %N par le N le plus bas suivant, etc.

Args peut consister en tout ce qui se convertit implicitement en QAnyStringView.

Note : Dans les versions de Qt antérieures à la 6.9, QAnyStringView et les chaînes UTF-8 (QUtf8StringView, QByteArray, QByteArrayView, const char8_t*, etc) n'étaient pas prises en charge en tant que args.

Voir aussi QString::arg().

template <typename T, QString::if_string_like<T> = true> QString QString::arg(const T &a, int fieldWidth = 0, QChar fillChar = u' ') const

Renvoie une copie de cette chaîne dont le marqueur de place le plus bas est remplacé par la chaîne a, c'est-à-dire %1, %2, ..., %99.

fieldWidth spécifie l'espace minimum que a doit occuper. Si a nécessite moins d'espace que fieldWidth, il est ajouté à fieldWidth avec le caractère fillChar. Une valeur positive de fieldWidth produit un texte aligné à droite. Un fieldWidth négatif produit un texte aligné à gauche.

Cet exemple montre comment nous pourrions créer une chaîne status pour signaler la progression du traitement d'une liste de fichiers :

int i;                // current file's number
int total;            // number of files to process
QStringView fileName; // current file's name

QString status = QString("Processing file %1 of %2: %3")
                .arg(i).arg(total).arg(fileName);

Tout d'abord, arg(i) remplace %1. Ensuite, arg(total) remplace %2. Enfin, arg(fileName) remplace %3.

L'un des avantages de l'utilisation de arg() par rapport à asprintf() est que l'ordre des marqueurs de place numérotés peut changer si les chaînes de l'application sont traduites dans d'autres langues, mais chaque arg() remplacera toujours le marqueur de place non remplacé le plus bas, quel que soit l'endroit où il apparaît. De même, si le marqueur de place %i apparaît plus d'une fois dans la chaîne, arg() les remplace tous.

S'il ne reste aucun marqueur de place non remplacé, un message d'avertissement est imprimé et le résultat est indéfini. Les numéros des marqueurs de place doivent être compris entre 1 et 99.

Remarque : dans les versions de Qt antérieures à la version 6.9, cette fonction était surchargée sur char, QChar, QString, QStringView, et QLatin1StringView et, dans certains cas, les arguments wchar_t et char16_t se résolvaient en surcharges d'entiers. Dans les versions de Qt antérieures à 5.10, cette fonction n'avait pas les surcharges QStringView et QLatin1StringView.

template <typename T, QString::if_integral_non_char<T> = true> QString QString::arg(T a, int fieldWidth = 0, int base = 10, QChar fillChar = u' ') const

L'argument a est exprimé dans la base base, qui est 10 par défaut et doit être comprise entre 2 et 36. Pour les bases autres que 10, a est traité comme un entier non signé.

fieldWidth spécifie la quantité minimale d'espace dont a est rempli par le caractère fillChar. Une valeur positive produit un texte aligné à droite ; une valeur négative produit un texte aligné à gauche.

Le "%" peut être suivi d'un "L", auquel cas la séquence est remplacée par une représentation localisée de a. La conversion utilise la locale par défaut, définie par QLocale::setDefault(). Si aucune locale par défaut n'a été spécifiée, la locale du système est utilisée. L'indicateur 'L' est ignoré si base n'est pas 10.

QString str;
str = QString("Decimal 63 is %1 in hexadecimal")
        .arg(63, 0, 16);
// str == "Decimal 63 is 3f in hexadecimal"

QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
str = QString("%1 %L2 %L3")
        .arg(12345)
        .arg(12345)
        .arg(12345, 0, 16);
// str == "12345 12,345 3039"

Note : Dans les versions de Qt antérieures à 6.10.1, cette fonction acceptait des arguments de types qui se convertissent implicitement en types intégraux. Ceci n'est plus supporté, sauf pour les enums (non copiés), parce qu'elle acceptait aussi des types convertibles en types à virgule flottante, perdant de la précision lorsque ceux-ci étaient imprimés comme des entiers. Une solution rétrocompatible consiste à convertir ces types en un type C++ dont la forme affichée correspond à votre intention (int, float, ...).

Note : Dans les versions de Qt antérieures à la 6.9, cette fonction était surchargée sur divers types intégraux et acceptait parfois incorrectement les arguments char et char16_t.

Cette fonction surcharge QString::arg().

Voir aussi Number formats.

template <typename T, QString::if_floating_point<T> = true> QString QString::arg(T a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = u' ') const

L'argument a est formaté conformément aux spécifications format et precision. Voir Floating-point Formats pour plus de détails.

fieldWidth spécifie la quantité minimale d'espace dont a est rempli par le caractère fillChar. Une valeur positive produit un texte aligné à droite ; une valeur négative produit un texte aligné à gauche.

double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01"

Note : Dans les versions de Qt antérieures à la 6.9, cette fonction était une fonction normale prenant double. Comme elle est maintenant une fonction template, elle n'accepte plus d'arguments qui ne font que convertir implicitement en types de virgule flottante. Une solution rétrocompatible consiste à convertir ces types en l'un des types de virgule flottante du C++.

Cette fonction surcharge QString::arg().

Voir aussi QLocale::toString(), QLocale::FloatingPointPrecisionOption, et Number formats.

[static] QString QString::asprintf(const char *cformat, ...)

Construit en toute sécurité une chaîne formatée à partir de la chaîne de format cformat et d'une liste arbitraire d'arguments.

La chaîne de format supporte les spécificateurs de conversion, les modificateurs de longueur et les drapeaux fournis par printf() dans la bibliothèque standard C++. La chaîne cformat et les arguments %s doivent être codés en UTF-8.

Remarque : la séquence d'échappement %lc attend un caractère unicode du type char16_t (tel que renvoyé par QChar::unicode()), ou ushort. La séquence d'échappement %ls attend un pointeur sur un tableau à terminaison zéro de caractères unicode du type char16_t, ou ushort (tel que renvoyé par QString::utf16()). Ceci est en contradiction avec la fonction printf() de la bibliothèque standard C++, qui définit %lc pour imprimer un wchar_t et %ls pour imprimer un wchar_t*, et peut également produire des avertissements du compilateur sur les plates-formes où la taille de wchar_t n'est pas de 16 bits.

Attention : Nous ne recommandons pas l'utilisation de QString::asprintf() dans le nouveau code Qt. Il est préférable d'utiliser QTextStream ou arg(), qui prennent tous deux en charge les chaînes Unicode de manière transparente et dont le type est sûr. Voici un exemple qui utilise QTextStream:

QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"

Pour translations, en particulier si la chaîne contient plus d'une séquence d'échappement, vous devriez envisager d'utiliser la fonction arg() à la place. Cela permet au traducteur de contrôler l'ordre des remplacements.

Voir aussi arg().

[since 6.6] QString &QString::assign(QAnyStringView v)

Remplace le contenu de cette chaîne par une copie de v et renvoie une référence à cette chaîne.

La taille de cette chaîne sera égale à la taille de v, convertie en UTF-16 comme par v.toString(). Contrairement à QAnyStringView::toString(), cette fonction n'alloue de la mémoire que si la taille estimée dépasse la capacité de cette chaîne ou si cette chaîne est partagée.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi QAnyStringView::toString().

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

Remplace le contenu de cette chaîne par une copie des éléments de l'itérateur [first, last) et renvoie une référence à cette chaîne.

La taille de cette chaîne sera égale à la longueur décodée des éléments de l'intervalle [first, last), qui ne doit pas nécessairement être la même que la longueur de l'intervalle lui-même, car cette fonction recode de manière transparente le jeu de caractères d'entrée en UTF-16.

Cette fonction n'allouera de la mémoire que si le nombre d'éléments de l'intervalle ou, pour une entrée non codée en UTF-16, la taille maximale possible de la chaîne résultante, dépasse la capacité de cette chaîne, ou si cette chaîne est partagée.

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

Contraintes

Participe à la résolution de surcharge uniquement si InputIterator répond aux exigences d'un LegacyInputIterator et si value_type de InputIterator est l'un des types de caractères suivants :

  • QChar
  • QLatin1Char
  • char
  • unsigned char
  • signed char
  • char8_t
  • char16_t
  • (sur les plates-formes, telles que Windows, où il s'agit d'un type 16 bits) wchar_t
  • char32_t

Cette fonction a été introduite dans Qt 6.6.

[since 6.6] QString &QString::assign(qsizetype n, QChar c)

Remplace le contenu de cette chaîne par n copies de c et renvoie une référence à cette chaîne.

La taille de cette chaîne sera égale à n, qui doit être non négative.

Cette fonction n'allouera de la mémoire que si n dépasse la capacité de cette chaîne ou si cette chaîne est partagée.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi fill().

const QChar QString::at(qsizetype position) const

Renvoie le caractère à l'index donné position dans la chaîne.

L'adresse position doit être une position d'index valide dans la chaîne (c'est-à-dire 0 <= position < size()).

Voir aussi operator[]().

QChar &QString::back()

Renvoie une référence au dernier caractère de la chaîne. Identique à operator[](size() - 1).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur une chaîne vide constitue un comportement indéfini.

Voir également front(), at() et operator[]().

QChar QString::back() const

Renvoie le dernier caractère de la chaîne. Identique à at(size() - 1).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur une chaîne vide constitue un comportement indéfini.

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

QString::iterator QString::begin()

Renvoie un itérateur de style STL pointant sur le premier caractère de la chaîne.

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

Voir aussi constBegin() et end().

QString::const_iterator QString::begin() const

Cette fonction surcharge QString::begin().

qsizetype QString::capacity() const

Renvoie le nombre maximum de caractères qui peuvent être stockés dans la chaîne sans forcer une réallocation.

Le seul but de cette fonction est de fournir un moyen d'affiner l'utilisation de la mémoire par QString. En général, vous n'aurez que rarement besoin d'appeler cette fonction. Si vous voulez savoir combien de caractères contient la chaîne, appelez size().

Remarque : une chaîne allouée statiquement affichera une capacité de 0, même si elle n'est pas vide.

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

Voir également reserve() et squeeze().

QString::const_iterator QString::cbegin() const

Renvoie un itérateur de style STL constant pointant sur le premier caractère de la chaîne.

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

Voir aussi begin() et cend().

QString::const_iterator QString::cend() const

Renvoie un itérateur de style STL constant pointant juste après le dernier caractère de la chaîne.

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

Voir aussi cbegin() et end().

void QString::chop(qsizetype n)

Supprime les caractères n de la fin de la chaîne.

Si n est supérieur ou égal à size(), le résultat est une chaîne vide ; si n est négatif, cela équivaut à passer zéro.

Exemple :

QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT"

Si vous souhaitez supprimer des caractères au début de la chaîne, utilisez plutôt remove().

Voir aussi truncate(), resize(), remove() et QStringView::chop().

QString QString::chopped(qsizetype len) const &

QString QString::chopped(qsizetype len) &&

Renvoie une chaîne contenant les caractères size() - len les plus à gauche de cette chaîne.

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

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

void QString::clear()

Efface le contenu de la chaîne et la rend nulle.

Voir aussi resize() et isNull().

[static noexcept] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Compare la chaîne s1 avec la chaîne s2 et renvoie un nombre entier négatif si s1 est inférieur à s2, un nombre entier positif s'il est supérieur à s2, et zéro s'ils sont égaux.

Si cs est Qt::CaseSensitive (par défaut), la comparaison est sensible à la casse ; sinon, la comparaison est insensible à la casse.

La comparaison sensible à la casse est basée exclusivement sur les valeurs numériques Unicode des caractères et est très rapide, mais ne correspond pas aux attentes d'un être humain. Envisagez de trier les chaînes visibles par l'utilisateur avec localeAwareCompare().

int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive);  // x == 0
int y = QString::compare("auto", "Car", Qt::CaseSensitive);     // y > 0
int z = QString::compare("auto", "Car", Qt::CaseInsensitive);   // z < 0

Remarque : cette fonction traite les chaînes nulles de la même manière que les chaînes vides. Pour plus de détails, voir Distinction Between Null and Empty Strings.

Voir aussi operator==(), operator<(), operator>() et Comparing Strings.

[noexcept] int QString::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Effectue une comparaison avec ch, en utilisant le paramètre de sensibilité à la casse cs.

Cette fonction surcharge QString::compare().

[noexcept] int QString::compare(QLatin1StringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Identique à compare(*this, other, cs).

Cette fonction surcharge QString::compare().

[noexcept] int QString::compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Effectue une comparaison avec s, en utilisant le paramètre de sensibilité à la casse cs.

Cette fonction surcharge QString::compare().

[noexcept] int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Compare lexicalement cette chaîne avec la chaîne other et renvoie un entier négatif si cette chaîne est inférieure à other, un entier positif si elle est supérieure à other, et zéro si elles sont égales.

Identique à compare(*this, other, cs).

Cette fonction surcharge QString::compare().

[static noexcept] int QString::compare(QLatin1StringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Effectue une comparaison entre s1 et s2, en utilisant le paramètre de sensibilité à la casse cs.

Cette fonction surcharge QString::compare().

[static noexcept] int QString::compare(QStringView s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Cette fonction surcharge QString::compare().

[static noexcept] int QString::compare(const QString &s1, QLatin1StringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Effectue une comparaison entre s1 et s2, en utilisant le paramètre de sensibilité à la casse cs.

Cette fonction surcharge QString::compare().

[static noexcept] int QString::compare(const QString &s1, QStringView s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Cette fonction surcharge QString::compare().

QString::const_iterator QString::constBegin() const

Renvoie un itérateur de style STL constant pointant sur le premier caractère de la chaîne.

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

Voir aussi begin() et constEnd().

const QChar *QString::constData() const

Renvoie un pointeur sur les données stockées dans la chaîne QString. Le pointeur peut être utilisé pour accéder aux caractères qui composent la chaîne.

Notez que le pointeur reste valide tant que la chaîne n'est pas modifiée.

Remarque : la chaîne renvoyée peut ne pas être '\0'-terminée. Utilisez size() pour déterminer la longueur du tableau.

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

QString::const_iterator QString::constEnd() const

Renvoie un itérateur de style STL constant pointant juste après le dernier caractère de la chaîne.

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

Voir aussi constBegin() et end().

bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

Renvoie true si l'expression régulière re correspond à un élément de cette chaîne ; sinon, il renvoie false.

Si la correspondance est réussie et que rmatch n'est pas nullptr, il écrit également les résultats de la correspondance dans l'objet QRegularExpressionMatch pointé par rmatch.

Voir aussi QRegularExpression::match().

bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si cette chaîne contient une occurrence de la chaîne str; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive);    // returns true

Voir aussi indexOf() et count().

bool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si cette chaîne contient une occurrence du caractère ch; sinon, renvoie false.

Cette fonction surcharge QString::contains().

bool QString::contains(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si cette chaîne contient une occurrence de la chaîne latine-1 str; sinon, renvoie false.

Cette fonction surcharge QString::contains().

[noexcept] bool QString::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si cette chaîne contient une occurrence de la vue de la chaîne str; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::contains().

Voir aussi indexOf() et count().

qsizetype QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie le nombre d'occurrences (pouvant se chevaucher) de la chaîne str dans cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Voir également contains() et indexOf().

qsizetype QString::count(const QRegularExpression &re) const

Renvoie le nombre de fois où l'expression régulière re correspond à la chaîne de caractères.

Pour des raisons historiques, cette fonction compte les correspondances qui se chevauchent. Ainsi, dans l'exemple ci-dessous, il y a quatre occurrences de "ana" ou "ama" :

QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a"));    // returns 4

Ce comportement est différent de la simple itération sur les correspondances dans la chaîne à l'aide de QRegularExpressionMatchIterator.

Cette fonction surcharge QString::count().

Voir également QRegularExpression::globalMatch().

qsizetype QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie le nombre d'occurrences du caractère ch dans la chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::count().

Voir également contains() et indexOf().

[since 6.0] qsizetype QString::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie le nombre d'occurrences (pouvant se chevaucher) de la chaîne view str dans cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::count().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi contains() et indexOf().

QString::const_reverse_iterator QString::crbegin() const

Renvoie un itérateur inverse de style STL constant pointant sur le premier caractère de la chaîne, dans l'ordre inverse.

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

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

QString::const_reverse_iterator QString::crend() const

Renvoie un itérateur inverse de style STL constant pointant juste après le dernier caractère de la chaîne, dans l'ordre inverse.

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

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

QChar *QString::data()

Renvoie un pointeur sur les données stockées dans QString. Le pointeur peut être utilisé pour accéder et modifier les caractères qui composent la chaîne.

Contrairement à constData() et unicode(), les données renvoyées sont toujours terminées par '\0'.

Exemple :

QString str = "Hello world";QChar *data = str.data() ;while (!data->isNull()) {    qDebug() << data->unicode();
   ++data; }

Notez que le pointeur ne reste valide que tant que la chaîne n'est pas modifiée par d'autres moyens. Pour un accès en lecture seule, constData() est plus rapide car il ne provoque jamais de copie profonde.

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

const QChar *QString::data() const

Remarque : la chaîne renvoyée peut ne pas être '\0'-terminée. Utilisez size() pour déterminer la longueur du tableau.

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

Voir également fromRawData().

QString::iterator QString::end()

Renvoie un itérateur de style STL pointant juste après le dernier caractère de la chaîne.

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

Voir aussi begin() et constEnd().

QString::const_iterator QString::end() const

Cette fonction surcharge QString::end().

bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne se termine par s; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

QString str = "Bananas";
str.endsWith("anas");         // returns true
str.endsWith("pple");         // returns false

Voir aussi startsWith().

bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne se termine par c; sinon, renvoie false.

Cette fonction surcharge QString::endsWith().

bool QString::endsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Cette fonction surcharge QString::endsWith().

[noexcept] bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne se termine par la vue de la chaîne str; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::endsWith().

Voir aussi startsWith().

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

Supprime de la chaîne les caractères de l'intervalle semi-ouvert [ first, last ). Renvoie un itérateur vers le caractère situé immédiatement après le dernier caractère effacé (c'est-à-dire le caractère auquel se réfère last avant l'effacement).

Cette fonction a été introduite dans Qt 6.1.

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

Supprime de la chaîne de caractères le caractère indiqué par it. Renvoie un itérateur vers le caractère situé immédiatement après le caractère effacé.

QString c = "abcdefg";
auto it = c.erase(c.cbegin()); // c is now "bcdefg"; "it" points to "b"

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

Cette fonction a été introduite dans Qt 6.5.

QString &QString::fill(QChar ch, qsizetype size = -1)

Fixe chaque caractère de la chaîne au caractère ch. Si size est différent de -1 (par défaut), la chaîne est préalablement redimensionnée à size.

Exemple :

QString str = "Berlin";
str.fill('z');
// str == "zzzzzz"

str.fill('A', 2);
// str == "AA"

Voir aussi resize().

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

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

Renvoie une chaîne contenant les n premiers caractères de cette chaîne (c'est-à-dire du début de la chaîne jusqu'à l'élément situé à la position d'index n).

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

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

Ces fonctions ont été introduites dans Qt 6.0.

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

[static] QString QString::fromCFString(CFStringRef string)

Construit un nouveau QString contenant une copie du CFString string.

Remarque : cette fonction n'est disponible que sur macOS et iOS.

[static, since 6.6] QString QString::fromEcmaString(emscripten::val jsString)

Convertit la chaîne ECMAScript jsString en QString. Le comportement est indéfini si le paramètre fourni n'est pas une chaîne.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi toEcmaString().

[static] QString QString::fromLatin1(const char *str, qsizetype size)

Renvoie un QString initialisé avec les premiers caractères size de la chaîne Latin-1 str.

Si size est -1, strlen(str) est utilisé à la place.

Voir aussi toLatin1(), fromUtf8(), et fromLocal8Bit().

[static, since 6.0] QString QString::fromLatin1(QByteArrayView str)

Renvoie un QString initialisé avec la chaîne de caractères Latin-1 str.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000).

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

Cette fonction a été introduite dans Qt 6.0.

[static] QString QString::fromLatin1(const QByteArray &str)

Renvoie un QString initialisé avec la chaîne de caractères Latin-1 str.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000). Ce comportement est différent de celui de Qt 5.x.

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

[static] QString QString::fromLocal8Bit(const char *str, qsizetype size)

Renvoie un QString initialisé avec les premiers caractères size de la chaîne de 8 bits str.

Si size est -1, strlen(str) est utilisé à la place.

Sur les systèmes Unix, cette fonction est équivalente à fromUtf8(). Notez que sur les systèmes Apple, cette fonction ne prend pas en compte NSString.defaultCStringEncoding ou CFStringGetSystemEncoding(), car ces fonctions renvoient généralement l'ancien codage "Western (Mac OS Roman)", qui ne doit pas être utilisé sur les systèmes d'exploitation Apple modernes. Sous Windows, c'est la page de code actuelle du système qui est utilisée.

Voir aussi toLocal8Bit(), fromLatin1(), et fromUtf8().

[static, since 6.0] QString QString::fromLocal8Bit(QByteArrayView str)

Renvoie un QString initialisé avec la chaîne de caractères de 8 bits str.

Sur les systèmes Unix, cette fonction est équivalente à fromUtf8(). Notez que sur les systèmes Apple, cette fonction ne prend pas en compte NSString.defaultCStringEncoding ou CFStringGetSystemEncoding(), car ces fonctions renvoient généralement l'ancien encodage "Western (Mac OS Roman)", qui ne doit pas être utilisé sur les systèmes d'exploitation Apple modernes. Sous Windows, c'est la page de code actuelle du système qui est utilisée.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000).

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

Cette fonction a été introduite dans Qt 6.0.

[static] QString QString::fromLocal8Bit(const QByteArray &str)

Renvoie un QString initialisé avec la chaîne de caractères de 8 bits str.

Sur les systèmes Unix, cette fonction est équivalente à fromUtf8(). Notez que sur les systèmes Apple, cette fonction ne prend pas en compte NSString.defaultCStringEncoding ou CFStringGetSystemEncoding(), car ces fonctions renvoient généralement l'ancien encodage "Western (Mac OS Roman)", qui ne doit pas être utilisé sur les systèmes d'exploitation Apple modernes. Sous Windows, c'est la page de code actuelle du système qui est utilisée.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000). Ce comportement est différent de celui de Qt 5.x.

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

[static] QString QString::fromNSString(const NSString *string)

Construit un nouveau QString contenant une copie de la NSString string.

Remarque : cette fonction n'est disponible que sur macOS et iOS.

[static, since 6.10] QString QString::fromRawData(const char16_t *unicode, qsizetype size)

Construit un QString qui utilise les premiers caractères Unicode de size dans le tableau unicode. Les données contenues dans unicode ne sont pas copiées. L'appelant doit pouvoir garantir que unicode ne sera ni supprimé ni modifié tant que QString (ou une copie non modifiée de celui-ci) existe.

Toute tentative de modification de QString ou de ses copies entraînera la création d'une copie profonde des données, garantissant ainsi que les données brutes ne sont pas modifiées.

Voici un exemple de la façon dont nous pouvons utiliser un QRegularExpression sur des données brutes en mémoire sans avoir à copier les données dans un QString:

QRegularExpression pattern("\u00A4");
static const char16_t unicode[] = {
        0x005A, 0x007F, 0x00A4, 0x0060,
        0x1009, 0x0020, 0x0020};

QString str = QString::fromRawData(unicode, std::size(unicode));
if (str.contains(pattern)) {
    // ...
}

Attention : Une chaîne créée avec fromRawData() n' est pas '\0'-terminée, à moins que les données brutes ne contiennent un caractère '\0' à la position size. Cela signifie que unicode() ne renverra pas une chaîne '\0'-terminée (bien que utf16() le fasse, au prix d'une copie des données brutes).

Cette fonction a été introduite dans Qt 6.10.

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

[static] QString QString::fromRawData(const QChar *unicode, qsizetype size)

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

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

Renvoie une copie de la chaîne str. La chaîne donnée est supposée être codée en UTF-8 et est convertie en QString à l'aide de la fonction fromUtf8().

Voir aussi fromLatin1(), fromLocal8Bit(), fromUtf8(), et QByteArray::fromStdString().

[static] QString QString::fromStdU16String(const std::u16string &str)

Renvoie une copie de la chaîne str. La chaîne donnée est supposée être encodée en UTF-16, et est convertie en QString à l'aide de la fonction fromUtf16().

Voir aussi fromUtf16(), fromStdWString(), et fromStdU32String().

[static] QString QString::fromStdU32String(const std::u32string &str)

Renvoie une copie de la chaîne str. La chaîne donnée est supposée être encodée en UTF-32, et est convertie en QString à l'aide de la fonction fromUcs4().

Voir aussi fromUcs4(), fromStdWString(), et fromStdU16String().

[static] QString QString::fromStdWString(const std::wstring &str)

Renvoie une copie de la chaîne str. La chaîne donnée est supposée être encodée en utf16 si la taille de wchar_t est de 2 octets (par exemple sous Windows) et en ucs4 si la taille de wchar_t est de 4 octets (sur la plupart des systèmes Unix).

Voir aussi fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String(), et fromStdU32String().

[static] QString QString::fromUcs4(const char32_t *unicode, qsizetype size = -1)

Renvoie un QString initialisé avec les premiers size caractères de la chaîne Unicode unicode (encodée en UTF-32).

Si size vaut -1 (valeur par défaut), unicode doit être '\0'-terminé.

Voir aussi toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() et fromStdU32String().

[static] QString QString::fromUtf8(const char *str, qsizetype size)

Renvoie un QString initialisé avec les premiers octets size de la chaîne UTF-8 str.

Si size est -1, strlen(str) est utilisé à la place.

UTF-8 est un codec Unicode et peut représenter tous les caractères d'une chaîne Unicode comme QString. Cependant, des séquences non valides sont possibles avec UTF-8 et, si l'une d'entre elles est trouvée, elle sera remplacée par un ou plusieurs "caractères de remplacement", ou supprimée. Il s'agit notamment de séquences non Unicode, de non-caractères, de séquences trop longues ou de points de code de substitution encodés en UTF-8.

Cette fonction peut être utilisée pour traiter les données entrantes de manière incrémentale tant que tous les caractères UTF-8 sont terminés dans les données entrantes. Tout caractère non terminé à la fin de la chaîne sera remplacé ou supprimé. Pour effectuer un décodage avec état, veuillez utiliser QStringDecoder.

Voir aussi toUtf8(), fromLatin1(), et fromLocal8Bit().

[static, since 6.0] QString QString::fromUtf8(QByteArrayView str)

Renvoie un QString initialisé avec la chaîne UTF-8 str.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000).

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

Cette fonction a été introduite dans Qt 6.0.

[static] QString QString::fromUtf8(const QByteArray &str)

Renvoie un QString initialisé avec la chaîne UTF-8 str.

Note : : tout octet nul ('\0') dans le tableau d'octets sera inclus dans cette chaîne, converti en caractères nuls Unicode (U+0000). Ce comportement est différent de celui de Qt 5.x.

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

[static, since 6.1] QString QString::fromUtf8(const char8_t *str)

Cette surcharge n'est disponible que lors de la compilation en mode C++20.

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

Cette fonction a été introduite dans Qt 6.1.

[static, since 6.0] QString QString::fromUtf8(const char8_t *str, qsizetype size)

Cette surcharge n'est disponible que lors de la compilation en mode C++20.

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

Cette fonction a été introduite dans Qt 6.0.

[static] QString QString::fromUtf16(const char16_t *unicode, qsizetype size = -1)

Renvoie un QString initialisé avec les premiers size caractères de la chaîne Unicode unicode (encodée ISO-10646-UTF-16).

Si size vaut -1 (valeur par défaut), unicode doit être '\0'-terminé.

Cette fonction vérifie la présence d'une marque d'ordre d'octet (BOM). Si elle est absente, l'ordre des octets de l'hôte est pris en compte.

Cette fonction est lente par rapport aux autres conversions Unicode. Utilisez QString(const QChar *, qsizetype) ou QString(const QChar *) si possible.

QString effectue une copie profonde des données Unicode.

Voir aussi utf16(), setUtf16(), et fromStdU16String().

[static] QString QString::fromWCharArray(const wchar_t *string, qsizetype size = -1)

Lit les premières unités de code size du tableau wchar_t vers lequel pointe string, les convertit en Unicode et renvoie le résultat sous forme de QString. Le codage utilisé par wchar_t est supposé être UTF-32 si la taille du type est de quatre octets ou UTF-16 si sa taille est de deux octets.

Si size vaut -1 (valeur par défaut), string doit être '\0'-terminé.

Voir aussi fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4() et fromStdWString().

QChar &QString::front()

Renvoie une référence au premier caractère de la chaîne. Identique à operator[](0).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur une chaîne vide constitue un comportement indéfini.

Voir également back(), at() et operator[]().

QChar QString::front() const

Renvoie le premier caractère de la chaîne. Identique à at(0).

Cette fonction est fournie pour la compatibilité STL.

Attention : L'appel de cette fonction sur une chaîne vide constitue un comportement indéfini.

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

qsizetype QString::indexOf(QLatin1StringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la première occurrence de la chaîne Latin-1 vue par str dans cette chaîne, en cherchant vers l'avant à partir de la position d'index from. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString x = "sticky question";
QString 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

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

Voir également lastIndexOf(), contains() et count().

qsizetype QString::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const

Renvoie la position d'index de la première correspondance de l'expression régulière re dans la chaîne, en cherchant vers l'avant à partir de la position d'index from. Renvoie -1 si re ne correspond à rien.

Si la correspondance est réussie et que rmatch n'est pas nullptr, elle écrit également les résultats de la correspondance dans l'objet QRegularExpressionMatch pointé par rmatch.

Exemple :

QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0);       // returns 4

QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match);       // returns 4
// match.captured() == mi

qsizetype QString::indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la première occurrence de la chaîne str dans cette chaîne, en cherchant vers l'avant à partir de la position d'index from. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString x = "sticky question";
QString 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

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

Voir également lastIndexOf(), contains() et count().

qsizetype QString::indexOf(QChar ch, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la première occurrence du caractère ch dans cette chaîne, en effectuant une recherche vers l'avant à partir de la position d'index from. Retourne -1 si ch n'est pas trouvé.

Cette fonction surcharge QString::indexOf().

[noexcept] qsizetype QString::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la première occurrence de la vue de la chaîne str dans cette chaîne, en cherchant vers l'avant à partir de la position d'index from. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

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

Cette fonction surcharge QString::indexOf().

Voir aussi QStringView::indexOf(), lastIndexOf(), contains() et count().

QString &QString::insert(qsizetype position, const QString &str)

Insère la chaîne de caractères str à l'index donné position et renvoie une référence à cette chaîne.

Exemple :

QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"

Cette chaîne s'agrandit pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

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

QString &QString::insert(qsizetype position, QChar ch)

Insère ch à l'index donné position dans la chaîne.

Cette chaîne s'allonge pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de ch.

Cette fonction surcharge QString::insert().

QString &QString::insert(qsizetype position, QLatin1StringView str)

Insère la chaîne Latin-1 vue par str à l'index donné position.

Cette chaîne s'accroît pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

Cette fonction surcharge QString::insert().

[since 6.0] QString &QString::insert(qsizetype position, QStringView str)

Insère la vue de la chaîne str à l'index donné position et renvoie une référence à cette chaîne.

Cette chaîne s'accroît pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

Cette fonction surcharge QString::insert().

Cette fonction a été introduite dans Qt 6.0.

[since 6.5] QString &QString::insert(qsizetype position, QUtf8StringView str)

Insère la vue de la chaîne UTF-8 str à l'index donné position.

Remarque : l'insertion de données de chaînes codées en UTF-8 à largeur variable est conceptuellement plus lente que l'insertion de données de chaînes à largeur fixe telles que UTF-16 (QStringView) ou Latin-1 (QLatin1StringView) et doit donc être utilisée avec parcimonie.

Cette chaîne s'agrandit pour s'adapter à l'insertion. Si position dépasse la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

Cette fonction surcharge QString::insert().

Cette fonction a été introduite dans Qt 6.5.

QString &QString::insert(qsizetype position, const QByteArray &str)

Interprète le contenu de str en UTF-8, insère la chaîne Unicode qu'il encode à l'index donné position et renvoie une référence à cette chaîne.

Cette chaîne s'agrandit pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

Cette fonction n'est pas disponible lorsque QT_NO_CAST_FROM_ASCII est défini.

Cette fonction surcharge QString::insert().

QString &QString::insert(qsizetype position, const char *str)

Insère la chaîne C str à l'index donné position et renvoie une référence à cette chaîne.

Cette chaîne s'accroît pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre position, suivi de str.

Cette fonction n'est pas disponible lorsque QT_NO_CAST_FROM_ASCII est défini.

Cette fonction surcharge QString::insert().

QString &QString::insert(qsizetype position, const QChar *unicode, qsizetype size)

Insère les premiers caractères size du tableau QChar unicode à l'index donné position dans la chaîne.

Cette chaîne s'accroît pour tenir compte de l'insertion. Si position se trouve au-delà de la fin de la chaîne, des caractères d'espacement sont ajoutés à la chaîne pour atteindre ce position, suivi par size caractères du tableau QChar unicode .

Cette fonction surcharge QString::insert().

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

Renvoie true si la chaîne ne contient pas de caractères ; sinon, renvoie false.

Exemple :

QString().isEmpty();            // returns true
QString("").isEmpty();          // returns true
QString("x").isEmpty();         // returns false
QString("abc").isEmpty();       // returns false

Voir aussi size().

bool QString::isLower() const

Renvoie true si la chaîne est en minuscules, c'est-à-dire qu'elle est identique à son pliage toLower().

Notez que cela ne signifie pas que la chaîne ne contient pas de lettres majuscules (certaines lettres majuscules n'ont pas de pliage minuscule ; elles sont laissées inchangées par toLower()). Pour plus d'informations, voir la norme Unicode, section 3.13.

Voir aussi QChar::toLower() et isUpper().

[constexpr] bool QString::isNull() const

Renvoie true si cette chaîne est nulle ; sinon, renvoie false.

Exemple :

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

Qt fait une distinction entre les chaînes nulles et les chaînes vides pour des raisons historiques. Pour la plupart des applications, l'important est de savoir si une chaîne contient ou non des données, ce qui peut être déterminé à l'aide de la fonction isEmpty().

Voir aussi isEmpty().

bool QString::isRightToLeft() const

Renvoie true si la chaîne est lue de droite à gauche.

Voir aussi QStringView::isRightToLeft().

bool QString::isUpper() const

Renvoie true si la chaîne est en majuscules, c'est-à-dire qu'elle est identique à son pliage toUpper().

Notez que cela ne signifie pas que la chaîne ne contient pas de lettres minuscules (certaines lettres minuscules n'ont pas de pliage majuscule ; elles sont laissées inchangées par toUpper()). Pour plus d'informations, voir la norme Unicode, section 3.13.

Voir également QChar::toUpper() et isLower().

[noexcept] bool QString::isValidUtf16() const

Renvoie true si la chaîne contient des données encodées UTF-16 valides, ou false dans le cas contraire.

Notez que cette fonction n'effectue aucune validation particulière des données ; elle vérifie simplement si elles peuvent être décodées avec succès à partir d'UTF-16. Les données sont supposées être dans l'ordre des octets de l'hôte ; la présence d'un BOM n'a pas de sens.

Voir aussi QStringView::isValidUtf16().

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

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

Renvoie la chaîne qui contient les derniers n caractères de cette chaîne.

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

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

Ces fonctions ont été introduites dans Qt 6.0.

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

qsizetype QString::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const

Renvoie la position d'index de la dernière correspondance de l'expression régulière re dans la chaîne, qui commence avant la position d'index from.

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

Retourne -1 si re ne correspond à rien.

Si la correspondance est réussie et que rmatch n'est pas nullptr, il écrit également les résultats de la correspondance dans l'objet QRegularExpressionMatch pointé par rmatch.

Exemple :

QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]"));      // returns 8

QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match);      // returns 8
// match.captured() == mu

Remarque : en raison du fonctionnement de l'algorithme de correspondance des expressions régulières, cette fonction effectue des correspondances répétées depuis le début de la chaîne jusqu'à la position from.

Remarque : lors de la recherche d'une expression régulière re qui peut correspondre à 0 caractère, la correspondance à la fin des données est exclue de la recherche par une valeur négative from, même si -1 est normalement considéré comme recherchant à partir de la fin de la chaîne : la correspondance à la fin se trouve après le dernier caractère, elle est donc exclue. Pour inclure une telle correspondance finale vide, il faut soit donner une valeur positive à from, soit omettre complètement le paramètre from.

qsizetype QString::lastIndexOf(const QString &str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la chaîne str dans cette chaîne, en effectuant une recherche à rebours à partir de la position d'index from.

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

Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

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

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

Voir également indexOf(), contains() et count().

[noexcept, since 6.3] qsizetype QString::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Cette fonction surcharge QString::lastIndexOf().

Cette fonction a été introduite dans Qt 6.3.

[since 6.2] qsizetype QString::lastIndexOf(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la chaîne str dans cette chaîne. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString x = "crazy azimuths";
QString 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

Cette fonction surcharge QString::lastIndexOf().

Cette fonction a été introduite dans Qt 6.2.

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

[noexcept, since 6.2] qsizetype QString::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la vue de la chaîne str dans cette chaîne. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::lastIndexOf().

Cette fonction a été introduite dans Qt 6.2.

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

[since 6.2] qsizetype QString::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

Renvoie la position d'index de la dernière correspondance de l'expression régulière re dans la chaîne. Retourne -1 si re ne correspond à rien.

Si la correspondance est réussie et que rmatch n'est pas nullptr, il écrit également les résultats de la correspondance dans l'objet QRegularExpressionMatch pointé par rmatch.

Exemple :

QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]"));      // returns 8

QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match);      // returns 8
// match.captured() == mu

Remarque : en raison du fonctionnement de l'algorithme de correspondance des expressions régulières, cette fonction effectue des correspondances répétées depuis le début de la chaîne jusqu'à la fin de celle-ci.

Cette fonction surcharge QString::lastIndexOf().

Cette fonction a été introduite dans Qt 6.2.

[since 6.2] qsizetype QString::lastIndexOf(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la chaîne str dans cette chaîne. Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString x = "crazy azimuths";
QString 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

Cette fonction surcharge QString::lastIndexOf().

Cette fonction a été introduite dans Qt 6.2.

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

qsizetype QString::lastIndexOf(QChar ch, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence du caractère ch dans cette chaîne, en effectuant une recherche à rebours à partir de la position d'index from.

Cette fonction surcharge QString::lastIndexOf().

qsizetype QString::lastIndexOf(QLatin1StringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la chaîne de caractères latins-1 vue par str dans cette chaîne, en effectuant une recherche à rebours à partir de la position d'index from.

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

Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

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

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

Cette fonction surcharge QString::lastIndexOf().

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

[noexcept] qsizetype QString::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie la position d'index de la dernière occurrence de la vue de la chaîne str dans cette chaîne, en effectuant une recherche à rebours à partir de la position d'index from.

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

Retourne -1 si str n'est pas trouvé.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

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

Cette fonction surcharge QString::lastIndexOf().

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

QString QString::left(qsizetype n) const &

QString QString::left(qsizetype n) &&

Renvoie une sous-chaîne contenant les n caractères les plus à gauche de cette chaîne (c'est-à-dire du début de cette chaîne jusqu'à l'élément situé à la position d'index n, mais sans l'inclure).

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

La chaîne entière est renvoyée si n est supérieur ou égal à size(), ou inférieur à zéro.

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

QString QString::leftJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const

Renvoie une chaîne de taille width qui contient cette chaîne complétée par le caractère fill.

Si truncate est false et que le caractère size() de la chaîne est supérieur à width, la chaîne renvoyée est une copie de la chaîne.

QString s = "apple";
QString t = s.leftJustified(8, '.');    // t == "apple..."

Si truncate est true et que size() de la chaîne est supérieur à width, tous les caractères d'une copie de la chaîne après la position width sont supprimés et la copie est renvoyée.

QString str = "Pineapple";
str = str.leftJustified(5, '.', true);    // str == "Pinea"

Voir également rightJustified().

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

Renvoie le nombre de caractères de cette chaîne. Équivalent à size().

Voir aussi resize().

[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)

Compare s1 avec s2 et renvoie un entier inférieur, égal ou supérieur à zéro si s1 est inférieur, égal ou supérieur à s2.

La comparaison est effectuée en fonction des paramètres locaux et de la plate-forme. Utilisez cette fonction pour présenter à l'utilisateur des listes triées de chaînes de caractères.

Voir aussi compare(), QLocale, et Comparing Strings.

[since 6.0] int QString::localeAwareCompare(QStringView other) const

Compare cette chaîne avec la chaîne other et renvoie un entier inférieur, égal ou supérieur à zéro si cette chaîne est inférieure, égale ou supérieure à la chaîne other.

La comparaison est effectuée en fonction des paramètres locaux et de la plate-forme. Utilisez cette fonction pour présenter à l'utilisateur des listes triées de chaînes de caractères.

Identique à localeAwareCompare(*this, other).

Cette fonction surcharge QString::localeAwareCompare().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi Comparing Strings.

int QString::localeAwareCompare(const QString &other) const

Compare cette chaîne avec la chaîne other et renvoie un entier inférieur, égal ou supérieur à zéro si cette chaîne est inférieure, égale ou supérieure à la chaîne other.

La comparaison est effectuée en fonction des paramètres locaux et de la plate-forme. Utilisez cette fonction pour présenter à l'utilisateur des listes triées de chaînes de caractères.

Identique à localeAwareCompare(*this, other).

Cette fonction surcharge QString::localeAwareCompare().

Voir également Comparing Strings.

[static, since 6.0] int QString::localeAwareCompare(QStringView s1, QStringView s2)

Compare s1 avec s2 et renvoie un entier inférieur, égal ou supérieur à zéro si s1 est inférieur, égal ou supérieur à s2.

La comparaison est effectuée en fonction des paramètres locaux et de la plate-forme. Utilisez cette fonction pour présenter à l'utilisateur des listes triées de chaînes de caractères.

Cette fonction surcharge QString::localeAwareCompare().

Cette fonction a été introduite dans Qt 6.0.

Voir aussi Comparing Strings.

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

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

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

Ces fonctions ont été introduites dans Qt 6.8.

QString QString::mid(qsizetype position, qsizetype n = -1) const &

QString QString::mid(qsizetype position, qsizetype n = -1) &&

Renvoie une chaîne qui contient n caractères de cette chaîne, à partir de l'indice position spécifié jusqu'à l'élément situé à la position d'indice \a position + n, mais sans l'inclure.

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

Renvoie une chaîne nulle si l'indice position dépasse la longueur de la chaîne. S'il y a moins de n caractères disponibles dans la chaîne à partir de position, ou si n est -1 (par défaut), la fonction renvoie tous les caractères disponibles à partir de position.

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

QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const

Renvoie la chaîne de caractères dans la normalisation Unicode donnée mode, conformément à la norme Unicode donnée version.

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

Si les données de cette chaîne ne sont pas terminées par des caractères nuls, cette méthode fera une copie profonde des données et les rendra terminées par des caractères nuls.

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

Cette fonction a été introduite dans Qt 6.10.

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

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

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

Renvoie une copie de cette chaîne de caractères dont la terminaison est toujours nulle.

Ces fonctions ont été introduites dans Qt 6.10.

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

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

Renvoie une chaîne de caractères équivalente au nombre n selon la base spécifiée base.

La base est 10 par défaut et doit être comprise entre 2 et 36. Pour les bases autres que 10, n est traité comme un entier non signé.

Le formatage utilise toujours QLocale::C, c'est-à-dire l'anglais/les États-Unis. Pour obtenir une représentation sous forme de chaîne de caractères localisée d'un nombre, utilisez QLocale::toString() avec la locale appropriée.

long a = 63;
QString s = QString::number(a, 16);             // s == "3f"
QString t = QString::number(a, 16).toUpper();     // t == "3F"

Voir aussi setNum().

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

Renvoie une chaîne représentant le nombre à virgule flottante n.

Renvoie une chaîne représentant n, formatée selon les formats spécifiés format et precision.

Pour les formats avec un exposant, l'exposant indiquera son signe et aura au moins deux chiffres, en plaçant l'exposant à gauche avec zéro si nécessaire.

Voir aussi setNum(), QLocale::toString(), QLocale::FloatingPointPrecisionOption, et Number formats.

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

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

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

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

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

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

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

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

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

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

QString &QString::prepend(const QString &str)

Prépare la chaîne str au début de cette chaîne et renvoie une référence à cette chaîne.

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

Exemple :

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

Voir également append() et insert().

QString &QString::prepend(QChar ch)

Ajoute le caractère ch à cette chaîne.

Cette fonction surcharge QString::prepend().

QString &QString::prepend(QLatin1StringView str)

Ajoute à cette chaîne la chaîne Latin-1 visualisée par str.

Cette fonction surcharge QString::prepend().

[since 6.0] QString &QString::prepend(QStringView str)

Prépare la vue de la chaîne str au début de cette chaîne et renvoie une référence à cette chaîne.

Cette fonction surcharge QString::prepend().

Cette fonction a été introduite dans Qt 6.0.

[since 6.5] QString &QString::prepend(QUtf8StringView str)

Ajoute la vue de la chaîne UTF-8 str à cette chaîne.

Cette fonction surcharge QString::prepend().

Cette fonction a été introduite dans Qt 6.5.

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

Ajoute le tableau d'octets ba à cette chaîne. Le tableau d'octets est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::prepend().

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

Ajoute la chaîne str à cette chaîne. Le pointeur const char est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::prepend().

QString &QString::prepend(const QChar *str, qsizetype len)

Ajoute les caractères len du tableau QChar str à cette chaîne et renvoie une référence à cette chaîne.

Cette fonction surcharge QString::prepend().

void QString::push_back(const QString &other)

Cette fonction est fournie à des fins de compatibilité STL. Elle ajoute la chaîne other donnée à la fin de cette chaîne. Elle est équivalente à append(other).

Voir aussi append().

void QString::push_back(QChar ch)

Ajoute le caractère ch à la fin de cette chaîne.

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

void QString::push_front(const QString &other)

Cette fonction est fournie à des fins de compatibilité STL. Elle fait précéder la chaîne other donnée au début de cette chaîne. Elle est équivalente à prepend(other).

Voir aussi prepend().

void QString::push_front(QChar ch)

Ajoute le caractère ch au début de la chaîne.

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

QString::reverse_iterator QString::rbegin()

Renvoie un itérateur inversé de style STL pointant sur le premier caractère de la chaîne, dans l'ordre inverse.

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

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

QString::const_reverse_iterator QString::rbegin() const

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

QString &QString::remove(const QRegularExpression &re)

Supprime toutes les occurrences de l'expression régulière re dans la chaîne et renvoie une référence à la chaîne. Par exemple :

QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The"

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

Voir également indexOf(), lastIndexOf() et replace().

QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Supprime toutes les occurrences du caractère ch dans cette chaîne et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

QString t = "Ali Baba";
t.remove(QChar('a'), Qt::CaseInsensitive);
// t == "li Bb"

C'est la même chose que replace(ch, "", cs).

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

Voir également replace().

QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Supprime toutes les occurrences de la chaîne str donnée dans cette chaîne et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

C'est la même chose que replace(str, "", cs).

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

Voir également replace().

QString &QString::remove(qsizetype position, qsizetype n)

Supprime les caractères n de la chaîne, à partir de l'indice position donné, et renvoie une référence à la chaîne.

Si l'indice position spécifié se trouve dans la chaîne, mais que position + n se trouve au-delà de la fin de la chaîne, la chaîne est tronquée à l'indice position spécifié.

Si n est <= 0, rien n'est modifié.

QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"

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

Voir également insert() et replace().

QString &QString::remove(QLatin1StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Supprime de cette chaîne toutes les occurrences de la chaîne Latin-1 donnée, visualisée par str, et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

C'est la même chose que replace(str, "", cs).

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

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

Voir aussi replace().

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

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

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

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

Supprime le premier caractère de cette chaîne. Si la chaîne est vide, cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

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

Supprime de la chaîne tous les éléments pour lesquels le prédicat pred renvoie la valeur true. Renvoie une référence à la chaîne.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi remove().

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

Supprime le dernier caractère de cette chaîne. Si la chaîne est vide, cette fonction ne fait rien.

Cette fonction a été introduite dans Qt 6.5.

Voir aussi remove().

QString::reverse_iterator QString::rend()

Renvoie un itérateur inversé de style STL pointant juste après le dernier caractère de la chaîne, dans l'ordre inverse.

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

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

QString::const_reverse_iterator QString::rend() const

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

QString QString::repeated(qsizetype times) const

Renvoie une copie de cette chaîne répétée au nombre spécifié de times.

Si times est inférieur à 1, une chaîne vide est renvoyée.

Exemple :

QString str("ab");
str.repeated(4);            // returns "abababab"

QString &QString::replace(qsizetype position, qsizetype n, const QString &after)

Remplace les caractères n commençant à l'index position par la chaîne after et renvoie une référence à cette chaîne.

Remarque : si l'indice position spécifié est compris dans la chaîne, mais que position + n sortent de la plage de la chaîne, n sera ajusté pour s'arrêter à la fin de la chaîne.

Exemple :

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

Voir aussi insert() et remove().

QString &QString::replace(const QRegularExpression &re, const QString &after)

Remplace chaque occurrence de l'expression régulière re dans la chaîne par after. Renvoie une référence à la chaîne. Par exemple :

QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa"

Pour les expressions régulières contenant des groupes de capture, les occurrences de \1, \2..., dans after sont remplacées par la chaîne capturée par le groupe de capture correspondant.

QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}."

Cette fonction surcharge QString::replace().

Voir aussi indexOf(), lastIndexOf(), remove(), QRegularExpression, et QRegularExpressionMatch.

QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence du caractère before par le caractère after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::replace().

QString &QString::replace(QChar c, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence du caractère c par la chaîne after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Remarque : le texte n'est pas réanalysé après un remplacement.

Cette fonction surcharge QString::replace().

QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence du caractère ch dans la chaîne par after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Cette fonction surcharge QString::replace().

QString &QString::replace(QLatin1StringView before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence dans cette chaîne de la chaîne Latin-1 vue par before par la chaîne Latin-1 vue par after, et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Remarque : Le texte n'est pas analysé à nouveau après un remplacement.

Remarque : Si vous utilisez un argument before vide, l'argument after sera inséré avant et après chaque caractère de la chaîne.

Cette fonction surcharge QString::replace().

QString &QString::replace(QLatin1StringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence dans cette chaîne de la chaîne Latin-1 vue par before par la chaîne after, et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Remarque : le texte n'est pas analysé à nouveau après un remplacement.

Remarque : Si vous utilisez un argument before vide, l'argument after sera inséré avant et après chaque caractère de la chaîne.

Cette fonction surcharge QString::replace().

QString &QString::replace(const QString &before, QLatin1StringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence de la chaîne before par la chaîne after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Remarque : le texte n'est pas réanalysé après un remplacement.

Remarque : Si vous utilisez un argument before vide, l'argument after sera inséré avant et après chaque caractère de la chaîne.

Cette fonction surcharge QString::replace().

QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence de la chaîne before par la chaîne after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Exemple :

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

Note : Le texte de remplacement n'est pas réanalysé après son insertion.

Exemple : Note : Le texte de remplacement n'est pas réanalysé après son insertion :

QString equis = "xxxxxx";
equis.replace("xx", "x");
// equis == "xxx"

Note : Si vous utilisez un argument before vide, l'argument after sera inséré avant et après chaque caractère de la chaîne.

Cette fonction surcharge QString::replace().

QString &QString::replace(qsizetype position, qsizetype n, QChar after)

Remplace les caractères n commençant à l'index position par le caractère after et renvoie une référence à cette chaîne.

Cette fonction surcharge QString::replace().

QString &QString::replace(qsizetype position, qsizetype n, const QChar *after, qsizetype alen)

Remplace les caractères n commençant à l'index position par les premiers caractères alen du tableau QChar after et renvoie une référence à cette chaîne.

n ne doit pas être négatif.

Cette fonction surcharge QString::replace().

QString &QString::replace(const QChar *before, qsizetype blen, const QChar *after, qsizetype alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Remplace chaque occurrence dans cette chaîne des premiers caractères blen de before par les premiers caractères alen de after et renvoie une référence à cette chaîne.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

Remarque : si before pointe vers une chaîne vide (c'est-à-dire blen == 0), la chaîne pointée par after sera insérée avant et après chaque caractère de cette chaîne.

Cette fonction surcharge QString::replace().

void QString::reserve(qsizetype size)

S'assure que la chaîne a de la place pour au moins size caractères.

Si vous connaissez à l'avance la taille de la chaîne, vous pouvez appeler cette fonction pour éviter les réallocations répétées lors de sa construction. Cela peut améliorer les performances lors de la construction incrémentale d'une chaîne. Une longue séquence d'opérations qui s'ajoutent à une chaîne peut déclencher plusieurs réallocations, dont la dernière peut vous laisser avec beaucoup plus d'espace que vous n'en avez besoin. Cette méthode est moins efficace qu'une allocation unique de la bonne taille au début.

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

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

Cette fonction est utile pour le code qui doit construire une longue chaîne de caractères et qui veut éviter les réallocations répétées. Dans cet exemple, nous voulons ajouter à la chaîne jusqu'à ce qu'une certaine condition soit remplie true, et nous sommes presque sûrs que la taille est suffisamment grande pour que l'appel à reserve() en vaille la peine :

QString result;
qsizetype maxSize;
bool condition;
QChar nextChar;

result.reserve(maxSize);

while (condition)
    result.append(nextChar);

result.squeeze();

Voir également squeeze(), capacity() et resize().

void QString::resize(qsizetype size)

Fixe la taille de la chaîne à size caractères.

Si size est supérieur à la taille actuelle, la chaîne est étendue pour atteindre size caractères, les caractères supplémentaires étant ajoutés à la fin. Les nouveaux caractères ne sont pas initialisés.

Si size est inférieur à la taille actuelle, les caractères situés au-delà de la position size sont exclus de la chaîne.

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

Exemple :

QString s = "Hello world";
s.resize(5);
// s == "Hello"

s.resize(8);
// s == "Hello???" (where ? stands for any character)

Si vous souhaitez ajouter un certain nombre de caractères identiques à la chaîne, utilisez la surcharge resize(qsizetype, QChar).

Si vous souhaitez étendre la chaîne de manière à ce qu'elle atteigne une certaine largeur et remplir les nouvelles positions avec un caractère particulier, utilisez la fonction leftJustified() :

Si size est négatif, cela équivaut à passer zéro.

QString r = "Hello";
r = r.leftJustified(10, ' ');
// r == "Hello     "

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

void QString::resize(qsizetype newSize, QChar fillChar)

Contrairement à resize(qsizetype), cette surcharge initialise les nouveaux caractères à fillChar:

QString t = "Hello";
t.resize(t.size() + 10, 'X');
// t == "HelloXXXXXXXXXX"

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

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

Fixe la taille de la chaîne à size caractères. Si la taille de la chaîne augmente, les nouveaux caractères ne sont pas initialisés.

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

Cette fonction a été introduite dans Qt 6.8.

Voir aussi resize().

QString QString::right(qsizetype n) const &

Renvoie une sous-chaîne contenant les n caractères les plus à droite de la chaîne.

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

La chaîne entière est renvoyée si n est supérieur ou égal à size(), ou inférieur à zéro.

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

QString QString::rightJustified(qsizetype width, QChar fill = u' ', bool truncate = false) const

Renvoie une chaîne de size() width qui contient le caractère fill suivi de la chaîne. Par exemple :

QString s = "apple";
QString t = s.rightJustified(8, '.');    // t == "...apple"

Si truncate est false et que le caractère size() de la chaîne est supérieur à width, la chaîne renvoyée est une copie de la chaîne.

Si truncate est vrai et que le caractère size() de la chaîne est supérieur à width, la chaîne résultante est tronquée à la position width.

QString str = "Pineapple";
str = str.rightJustified(5, '.', true);    // str == "Pinea"

Voir également leftJustified().

QString QString::section(QChar sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const

Cette fonction renvoie une section de la chaîne.

Cette chaîne est traitée comme une séquence de champs séparés par le caractère sep. La chaîne renvoyée est constituée des champs allant de la position start à la position end incluse. Si end n'est pas spécifié, tous les champs de la position start à la fin de la chaîne sont inclus. Les champs sont numérotés 0, 1, 2, etc., en comptant à partir de la gauche, et -1, -2, etc., en comptant de droite à gauche.

L'argument flags peut être utilisé pour modifier certains aspects du comportement de la fonction, par exemple pour déterminer s'il faut tenir compte de la casse, s'il faut ignorer les champs vides et comment traiter les séparateurs de début et de fin ; voir SectionFlags.

QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;

str = csv.section(',', 2, 2);   // str == "surname"
str = path.section('/', 3, 4);  // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"

Si start ou end est négatif, nous comptons les champs à partir de la droite de la chaîne, le champ le plus à droite étant -1, le champ le plus à droite étant -2, et ainsi de suite.

str = csv.section(',', -3, -2);  // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp"

Voir également split().

QString QString::section(const QRegularExpression &re, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const

Cette chaîne est traitée comme une séquence de champs séparés par l'expression régulière re.

QString line = "forename\tmiddlename  surname \t \t phone";
QRegularExpression sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename  surname"

Attention : L'utilisation de cette version de QRegularExpression est beaucoup plus coûteuse que les versions surchargées de chaînes et de caractères.

Cette fonction surcharge QString::section().

Voir aussi split() et simplified().

QString QString::section(const QString &sep, qsizetype start, qsizetype end = -1, QString::SectionFlags flags = SectionDefault) const

QString str;
QString data = "forename**middlename**surname**phone";

str = data.section("**", 2, 2); // str == "surname"
str = data.section("**", -3, -2); // str == "middlename**surname"

Cette fonction surcharge QString::section().

Voir aussi split().

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

Définit la chaîne de caractères à la valeur imprimée de n dans la valeur spécifiée de base, et renvoie une référence à la chaîne de caractères.

La base est 10 par défaut et doit être comprise entre 2 et 36.

QString str;
str.setNum(1234);       // str == "1234"

Le formatage utilise toujours QLocale::C, c'est-à-dire English/UnitedStates. Pour obtenir une représentation localisée d'un nombre, utilisez QLocale::toString() avec la locale appropriée.

Voir aussi number().

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Définit la chaîne à la valeur imprimée de n, formatée selon les valeurs données format et precision, et renvoie une référence à la chaîne.

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

Voir aussi number(), QLocale::FloatingPointPrecisionOption, et Number formats.

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

Définit la chaîne à la valeur imprimée de n, formatée en fonction de format et precision, et renvoie une référence à la chaîne.

Le formatage utilise toujours QLocale::C, c'est-à-dire English/UnitedStates. Pour obtenir une représentation sous forme de chaîne localisée d'un nombre, utilisez QLocale::toString() avec la locale appropriée.

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

Voir aussi number().

QString &QString::setRawData(const QChar *unicode, qsizetype size)

Réinitialise le site QString pour utiliser les premiers caractères Unicode de size dans le tableau unicode. Les données contenues dans unicode ne sont pas copiées. L'appelant doit pouvoir garantir que unicode ne sera pas supprimé ou modifié tant que QString (ou une copie non modifiée de celui-ci) existe.

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

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

QString &QString::setUnicode(const QChar *unicode, qsizetype size)

Redimensionne la chaîne à size caractères et copie unicode dans la chaîne.

Si unicode est nullptr, rien n'est copié, mais la chaîne est redimensionnée à size.

Voir aussi unicode() et setUtf16().

[since 6.9] QString &QString::setUnicode(const char16_t *unicode, qsizetype size)

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

Cette fonction a été introduite dans Qt 6.9.

Voir aussi unicode() et setUtf16().

[since 6.9] QString &QString::setUtf16(const char16_t *unicode, qsizetype size)

Redimensionne la chaîne à size caractères et copie unicode dans la chaîne.

Si unicode est nullptr, rien n'est copié, mais la chaîne est redimensionnée à size.

Notez que contrairement à fromUtf16(), cette fonction ne prend pas en compte les nomenclatures et éventuellement les différences d'ordre des octets.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi utf16() et setUnicode().

void QString::shrink_to_fit()

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

Voir également squeeze().

QString QString::simplified() const

Renvoie une chaîne de caractères dont les espaces blancs ont été supprimés au début et à la fin, et dont chaque séquence d'espaces blancs internes a été remplacée par un espace unique.

On entend par espace blanc tout caractère pour lequel QChar::isSpace() renvoie true. Cela inclut les caractères ASCII '\t', '\n', '\v', '\f', '\r' et ' '.

Exemple :

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

Voir également trimmed().

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

Renvoie le nombre de caractères de cette chaîne.

Le dernier caractère de la chaîne se trouve à la position size() - 1.

Exemple :

QString str = "World";
qsizetype n = str.size();   // n == 5
str.data()[0];              // returns 'W'
str.data()[4];              // returns 'd'

Voir aussi isEmpty() et resize().

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

Modifie cette chaîne pour qu'elle commence à la position pos, jusqu'au caractère (point de code) à la position d'index \a pos + n; et renvoie une référence à cette chaîne.

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

QString x = u"Nine pineapples"_s;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

Cette fonction a été introduite dans Qt 6.8.

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

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

Modifie cette chaîne pour qu'elle commence à la position pos et s'étende jusqu'à sa fin, et renvoie une référence à cette chaîne.

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

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

Cette fonction a été introduite dans Qt 6.8.

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

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

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

Renvoie une chaîne qui contient n caractères de cette chaîne, à partir de la position pos jusqu'à l'élément situé à la position d'index \a pos + n, mais sans l'inclure.

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

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

Ces fonctions ont été introduites dans Qt 6.0.

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

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

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

Renvoie une chaîne contenant la partie de cette chaîne commençant à la position pos et s'étendant jusqu'à la fin.

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

Ces fonctions ont été introduites dans Qt 6.0.

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

QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Divise la chaîne en sous-chaînes à chaque fois que sep apparaît, et renvoie la liste de ces chaînes. Si sep ne correspond à aucun élément de la chaîne, split() renvoie une liste à un seul élément contenant cette chaîne.

cs spécifie si sep doit être traité en tenant compte de la casse ou de l'insensibilité à la casse.

Si behavior est Qt::SkipEmptyParts, les entrées vides n'apparaissent pas dans le résultat. Par défaut, les entrées vides sont conservées.

Exemple :

QString str = QStringLiteral("a,,b,c");

QStringList list1 = str.split(u',');
// list1: [ "a", "", "b", "c" ]

QStringList list2 = str.split(u',', Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ]

Si sep est vide, split() renvoie une chaîne vide, suivie de chaque caractère de la chaîne, suivie d'une autre chaîne vide :

QString str = "abc";
auto parts = str.split(QString());
// parts: {"", "a", "b", "c", ""}

Pour comprendre ce comportement, rappelez-vous que la chaîne vide correspond partout, de sorte que ce qui précède est qualitativement le même que :

QString str = "/a/b/c/";
auto parts = str.split(u'/');
// parts: {"", "a", "b", "c", ""}

Voir aussi QStringList::join() et section().

QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const

Divise la chaîne en sous-chaînes partout où l'expression régulière re correspond, et renvoie la liste de ces chaînes. Si re ne correspond à aucun élément de la chaîne, split() renvoie une liste à un seul élément contenant cette chaîne.

Voici un exemple dans lequel nous extrayons les mots d'une phrase en utilisant un ou plusieurs caractères d'espacement comme séparateur :

QString str;
QStringList list;

str = "Some  text\n\twith  strange whitespace.";
list = str.split(QRegularExpression("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ]

Voici un exemple similaire, mais cette fois-ci, nous utilisons une séquence quelconque de caractères autres que des mots comme séparateur :

str = "This time, a normal English sentence.";
list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ]

Voici un troisième exemple dans lequel nous utilisons une assertion de longueur nulle, \b (limite du mot), pour diviser la chaîne en une séquence alternée de mots et de non-mots :

str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ]

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

Voir aussi QStringList::join() et section().

QStringList QString::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

void QString::squeeze()

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

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

Voir aussi reserve() et capacity().

bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne commence par s; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

QString str = "Bananas";
str.startsWith("Ban");     // returns true
str.startsWith("Car");     // returns false

Voir aussi endsWith().

bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne commence par c; sinon, renvoie false.

Cette fonction surcharge QString::startsWith().

bool QString::startsWith(QLatin1StringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Cette fonction surcharge QString::startsWith().

[noexcept] bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Renvoie true si la chaîne commence par la vue de la chaîne str; sinon, renvoie false.

Si cs est Qt::CaseSensitive (par défaut), la recherche est sensible à la casse ; sinon, la recherche est insensible à la casse.

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

Voir aussi endsWith().

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

Remplace cette chaîne par other. Cette opération est très rapide et n'échoue jamais.

CFStringRef QString::toCFString() const

Crée un CFString à partir d'un QString.

L'appelant est propriétaire de la CFString et est responsable de sa libération.

Remarque : cette fonction n'est disponible que sur macOS et iOS.

QString QString::toCaseFolded() const

Renvoie l'équivalent en casse de la chaîne de caractères. Pour la plupart des caractères Unicode, c'est la même chose que toLower().

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

Renvoie la chaîne de caractères convertie en valeur double.

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

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

QString str = "1234.56";
double val = str.toDouble();   // val == 1234.56

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

bool ok;
double d;

d = QString( "1234.56e-02" ).toDouble(&ok); // ok == true, d == 12.3456

d = QString( "1234.56e-02 Volt" ).toDouble(&ok); // ok == false, d == 0

La conversion de la chaîne de caractères se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toDouble()

d = QString( "1234,56" ).toDouble(&ok); // ok == false
d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

Pour des raisons historiques, cette fonction ne gère pas les séparateurs de groupes de milliers. Si vous devez convertir de tels nombres, utilisez QLocale::toDouble().

d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false
d = QString( "1234567.89" ).toDouble(&ok); // ok == true

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

Voir aussi number(), QLocale::setDefault(), QLocale::toDouble() et trimmed().

[since 6.6] emscripten::val QString::toEcmaString() const

Convertit cet objet en une chaîne ECMAScript.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi fromEcmaString().

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

Renvoie la chaîne de caractères convertie en valeur float.

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

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

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

La conversion de la chaîne de caractères se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toFloat()

Pour des raisons historiques, cette fonction ne gère pas les séparateurs de groupes de milliers. Si vous devez convertir de tels nombres, utilisez QLocale::toFloat().

Exemple :

QString str1 = "1234.56";
str1.toFloat();             // returns 1234.56

bool ok;
QString str2 = "R2D2";
str2.toFloat(&ok);          // returns 0.0, sets ok to false

QString str3 = "1234.56 Volt";
str3.toFloat(&ok);          // returns 0.0, sets ok to false

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

Voir aussi number(), toDouble(), toInt(), QLocale::toFloat() et trimmed().

QString QString::toHtmlEscaped() const

Convertit une chaîne de texte en clair en chaîne HTML avec les métacaractères HTML <, >, &, et " remplacés par des entités HTML.

Exemple :

QString plain = "#include <QtCore>";
QString html = plain.toHtmlEscaped();
// html == "#include &lt;QtCore&gt;"

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

Renvoie la chaîne convertie en int en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toInt()

Exemple :

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

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

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

Voir aussi number(), toUInt(), toDouble() et QLocale::toInt().

QByteArray QString::toLatin1() const

Renvoie une représentation latine-1 de la chaîne sous la forme d'un tableau d'octets QByteArray.

Le tableau d'octets renvoyé est indéfini si la chaîne contient des caractères non latins1. Ces caractères peuvent être supprimés ou remplacés par un point d'interrogation.

Voir aussi fromLatin1(), toUtf8(), toLocal8Bit(), et QStringEncoder.

QByteArray QString::toLocal8Bit() const

Renvoie la représentation locale sur 8 bits de la chaîne sous forme de QByteArray.

Sur les systèmes Unix, cette fonction est équivalente à toUtf8(). Notez que sur les systèmes Apple, cette fonction ne prend pas en compte NSString.defaultCStringEncoding ou CFStringGetSystemEncoding(), car ces fonctions renvoient généralement l'ancien encodage "Western (Mac OS Roman)", qui ne doit pas être utilisé sur les systèmes d'exploitation Apple modernes. Sous Windows, c'est la page de code actuelle du système qui est utilisée.

Si cette chaîne contient des caractères qui ne peuvent pas être encodés dans le codage 8 bits local, le tableau d'octets renvoyé est indéfini. Ces caractères peuvent être supprimés ou remplacés par d'autres.

Voir aussi fromLocal8Bit(), toLatin1(), toUtf8(), et QStringEncoder.

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

Renvoie la chaîne convertie en long en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toLongLong()

Exemple :

QString str = "FF";
bool ok;

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

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

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

Voir aussi number(), toULong(), toInt() et QLocale::toInt().

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

Renvoie la chaîne convertie en long long en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toLongLong()

Exemple :

QString str = "FF";
bool ok;

qint64 hex = str.toLongLong(&ok, 16);      // hex == 255, ok == true
qint64 dec = str.toLongLong(&ok, 10);      // dec == 0, ok == false

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

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

Voir aussi number(), toULongLong(), toInt() et QLocale::toLongLong().

QString QString::toLower() const

Renvoie une copie en minuscules de la chaîne de caractères.

QString str = "The Qt PROJECT";
str = str.toLower();        // str == "the qt project"

La conversion de la casse se fera toujours dans la locale 'C'. Pour une conversion de la casse en fonction de la locale, utilisez QLocale::toLower()

Voir aussi toUpper() et QLocale::toLower().

NSString *QString::toNSString() const

Crée une NSString à partir d'une QString.

La NSString est libérée automatiquement.

Remarque : cette fonction n'est disponible que sur macOS et iOS.

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

Renvoie la chaîne convertie en short en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toShort()

Exemple :

QString str = "FF";
bool ok;

short hex = str.toShort(&ok, 16);   // hex == 255, ok == true
short dec = str.toShort(&ok, 10);   // dec == 0, ok == false

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

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

Voir aussi number(), toUShort(), toInt() et QLocale::toShort().

std::string QString::toStdString() const

Renvoie un objet std::string contenant les données de ce site QString. Les données Unicode sont converties en caractères 8 bits à l'aide de la fonction toUtf8().

Cette méthode est surtout utile pour passer un QString à une fonction qui accepte un objet std::string.

Voir aussi toLatin1(), toUtf8(), toLocal8Bit() et QByteArray::toStdString().

std::u16string QString::toStdU16String() const

Renvoie un objet std::u16string avec les données contenues dans ce site QString. Les données Unicode sont les mêmes que celles renvoyées par la méthode utf16().

Voir aussi utf16(), toStdWString() et toStdU32String().

std::u32string QString::toStdU32String() const

Renvoie un objet std::u32string avec les données contenues dans ce site QString. Les données Unicode sont les mêmes que celles renvoyées par la méthode toUcs4().

Voir aussi toUcs4(), toStdWString() et toStdU16String().

std::wstring QString::toStdWString() const

Renvoie un objet std::wstring avec les données contenues dans cette QString. La chaîne std::wstring est codée en UTF-16 sur les plates-formes où wchar_t a une largeur de 2 octets (par exemple, Windows) et en UTF-32 sur les plates-formes où wchar_t a une largeur de 4 octets (la plupart des systèmes Unix).

Cette méthode est surtout utile pour passer un QString à une fonction qui accepte un objet std::wstring.

Voir aussi utf16(), toLatin1(), toUtf8(), toLocal8Bit(), toStdU16String() et toStdU32String().

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

Renvoie la chaîne convertie en unsigned int en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toUInt()

Exemple :

QString str = "FF";
bool ok;

uint hex = str.toUInt(&ok, 16);     // hex == 255, ok == true
uint dec = str.toUInt(&ok, 10);     // dec == 0, ok == false

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

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

Voir aussi number(), toInt(), et QLocale::toUInt().

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

Renvoie la chaîne convertie en unsigned long en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toULongLong()

Exemple :

QString str = "FF";
bool ok;

ulong hex = str.toULong(&ok, 16);   // hex == 255, ok == true
ulong dec = str.toULong(&ok, 10);   // dec == 0, ok == false

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

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

Voir aussi number() et QLocale::toUInt().

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

Renvoie la chaîne convertie en unsigned long long en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toULongLong()

Exemple :

QString str = "FF";
bool ok;

quint64 hex = str.toULongLong(&ok, 16);    // hex == 255, ok == true
quint64 dec = str.toULongLong(&ok, 10);    // dec == 0, ok == false

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

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

Voir aussi number(), toLongLong(), et QLocale::toULongLong().

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

Renvoie la chaîne convertie en unsigned short en utilisant la base base, qui est 10 par défaut et doit être comprise entre 2 et 36, ou 0. Renvoie 0 si la conversion échoue.

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

Si base vaut 0, la convention du langage C est utilisée : si la chaîne commence par "0x", la base 16 est utilisée ; sinon, si la chaîne commence par "0b", la base 2 est utilisée ; sinon, si la chaîne commence par "0", la base 8 est utilisée ; sinon, la base 10 est utilisée.

La conversion de la chaîne se fera toujours dans la locale 'C'. Pour une conversion en fonction de la locale, utilisez QLocale::toUShort()

Exemple :

QString str = "FF";
bool ok;

ushort hex = str.toUShort(&ok, 16);     // hex == 255, ok == true
ushort dec = str.toUShort(&ok, 10);     // dec == 0, ok == false

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

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

Voir aussi number(), toShort(), et QLocale::toUShort().

QList<uint> QString::toUcs4() const

Renvoie une représentation UCS-4/UTF-32 de la chaîne sous forme de QList<uint>.

UTF-32 est un codec Unicode et est donc sans perte. Tous les caractères de cette chaîne seront encodés en UTF-32. Toute séquence invalide d'unités de code dans cette chaîne est remplacée par le caractère de remplacement Unicode (QChar::ReplacementCharacter, qui correspond à U+FFFD).

La liste renvoyée n'est pas terminée par 0.

Voir aussi fromUtf8(), toUtf8(), toLatin1(), toLocal8Bit(), QStringEncoder, fromUcs4(), et toWCharArray().

QString QString::toUpper() const

Renvoie une copie en majuscules de la chaîne de caractères.

QString str = "TeXt";
str = str.toUpper();        // str == "TEXT"

La conversion de la casse se fera toujours dans la locale 'C'. Pour une conversion de la casse en fonction de la locale, utilisez QLocale::toUpper().

Note : Dans certains cas, la forme majuscule d'une chaîne peut être plus longue que l'original.

Note : Depuis 2024, la langue allemande préfère officiellement la majuscule ß (U+00DF LATIN SMALL LETTER SHARP S) à ẞ (U+1E9E LATIN CAPITAL LETTER SHARP S). L'implémentation de Qt suit Unicode, qui impose toujours l'utilisation de "SS". Si vous devez mettre en œuvre les nouvelles règles allemandes, vous devez faire manuellement replace(u'ß', u'ẞ') avant d' appeler cette fonction.

Voir aussi toLower() et QLocale::toLower().

QByteArray QString::toUtf8() const

Retourne une représentation UTF-8 de la chaîne sous forme de QByteArray.

UTF-8 est un codec Unicode et peut représenter tous les caractères d'une chaîne Unicode comme QString.

Voir aussi fromUtf8(), toLatin1(), toLocal8Bit() et QStringEncoder.

qsizetype QString::toWCharArray(wchar_t *array) const

Remplit le site array avec les données contenues dans l'objet QString. Le tableau est codé en UTF-16 sur les plates-formes où wchar_t a une largeur de 2 octets (par exemple Windows) et en UTF-32 sur les plates-formes où wchar_t a une largeur de 4 octets (la plupart des systèmes Unix).

array Le tableau doit être alloué par l'appelant et contenir suffisamment d'espace pour contenir la chaîne complète (allouer le tableau avec la même longueur que la chaîne est toujours suffisant).

Cette fonction renvoie la longueur réelle de la chaîne sur array.

Remarque : cette fonction n'ajoute pas de caractère nul au tableau.

Voir aussi utf16(), toUcs4(), toLatin1(), toUtf8(), toLocal8Bit(), toStdWString() et QStringView::toWCharArray().

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &&

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) &&

Divise la chaîne en sous-chaînes à chaque fois que sep apparaît, et renvoie une séquence paresseuse de ces chaînes.

Équivalent à

return QStringTokenizer{std::forward<Needle>(sep), flags...};

sauf qu'il fonctionne sans la déduction d'argument de modèle de classe C++17 (CTAD) activée dans le compilateur.

Voir QStringTokenizer pour savoir comment sep et flags interagissent pour former le résultat.

Note : Bien que cette fonction renvoie QStringTokenizer, vous ne devez jamais, au grand jamais, nommer ses arguments de modèle explicitement. Si vous pouvez utiliser la déduction d'arguments de modèle de classe C++17 (CTAD), vous pouvez écrire

QStringTokenizer result = sv.tokenize(sep);

(sans arguments de modèle). Si vous ne pouvez pas utiliser la CTAD C++17, vous devez stocker la valeur de retour uniquement dans les variables auto:

auto result = sv.tokenize(sep);

En effet, les arguments de modèle de QStringTokenizer dépendent très subtilement de la surcharge spécifique de tokenize() à partir de laquelle ils sont retournés, et ils ne correspondent généralement pas au type utilisé pour le séparateur.

Ces fonctions ont été introduites dans Qt 6.0.

Note : (1) est noexcept quand noexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...)) est true.

Note : (2) est noexcept lorsque noexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...)) est true.

Note : (3) est noexcept lorsque noexcept(qTokenize(std::declval<QString>(), std::forward<Needle>(needle), flags...)) est true.

Voir aussi QStringTokenizer et qTokenize().

QString QString::trimmed() const

Renvoie une chaîne de caractères dont les espaces blancs ont été supprimés au début et à la fin.

Par espacement, on entend tout caractère pour lequel QChar::isSpace() renvoie true. Cela inclut les caractères ASCII '\t', '\n', '\v', '\f', '\r' et ' '.

Exemple :

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"

Contrairement à simplified(), trimmed() ne touche pas aux espaces blancs internes.

Voir également simplified().

void QString::truncate(qsizetype position)

Tronque la chaîne à partir de l'élément à l'index position.

Si l'indice position spécifié se trouve au-delà de la fin de la chaîne, rien ne se produit.

Exemple :

QString str = "Vladivostok";
str.truncate(4);
// str == "Vlad"

Si position est négatif, cela équivaut à passer à zéro.

Voir aussi chop(), resize(), first() et QStringView::truncate().

const QChar *QString::unicode() const

Renvoie une représentation Unicode de la chaîne de caractères. Le résultat reste valide jusqu'à ce que la chaîne soit modifiée.

Remarque : la chaîne renvoyée peut ne pas être '\0'-terminée. Utilisez size() pour déterminer la longueur du tableau.

Voir également setUnicode(), utf16() et fromRawData().

const ushort *QString::utf16() const

Renvoie l'adresse QString sous la forme d'un tableau de courts-circuits non signés terminé par '\0'. Le résultat reste valide jusqu'à ce que la chaîne soit modifiée.

La chaîne renvoyée est dans l'ordre des octets de l'hôte.

Voir aussi setUtf16() et unicode().

[static] QString QString::vasprintf(const char *cformat, va_list ap)

Méthode équivalente à asprintf(), mais qui prend une liste de variables ap au lieu d'une liste d'arguments variables. Voir la documentation de asprintf() pour une explication de cformat.

Cette méthode n'appelle pas la macro va_end, l'appelant est responsable d'appeler va_end sur ap.

Voir aussi asprintf().

[noexcept, since 6.7] QString::operator std::u16string_view() const

Convertit cet objet QString en un objet std::u16string_view.

Cette fonction a été introduite dans Qt 6.7.

QString &QString::operator+=(const QString &other)

Ajoute la chaîne other à la fin de cette chaîne et renvoie une référence à cette chaîne.

Exemple :

QString x = "free";
QString y = "dom";
x += y;
// x == "freedom"

Cette opération est généralement très rapide(temps constant), car QString préaffecte de l'espace supplémentaire à la fin des données de la chaîne afin qu'elle puisse croître sans réaffecter l'intégralité de la chaîne à chaque fois.

Voir également append() et prepend().

QString &QString::operator+=(QChar ch)

Ajoute le caractère ch à la chaîne de caractères.

Cette fonction surcharge QString::operator+=().

QString &QString::operator+=(QLatin1StringView str)

Ajoute à cette chaîne la chaîne Latin-1 visualisée par str.

Cette fonction surcharge QString::operator+=().

[since 6.0] QString &QString::operator+=(QStringView str)

Ajoute la vue de la chaîne str à cette chaîne.

Cette fonction surcharge QString::operator+=().

Cette fonction a été introduite dans Qt 6.0.

[since 6.5] QString &QString::operator+=(QUtf8StringView str)

Ajoute la vue de la chaîne UTF-8 str à cette chaîne.

Cette fonction surcharge QString::operator+=().

Cette fonction a été introduite dans Qt 6.5.

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

Ajoute le tableau d'octets ba à cette chaîne. Le tableau d'octets est converti en Unicode à l'aide de la fonction fromUtf8(). Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets ba, ils seront inclus dans la transformation.

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator+=().

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

Ajoute la chaîne str à cette chaîne. Le pointeur const char est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cette fonction en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::operator+=().

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

Move-assigne other à cette instance QString.

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

Attribue other à cette chaîne et renvoie une référence à cette chaîne.

QString &QString::operator=(QChar ch)

Configure la chaîne pour qu'elle contienne le caractère unique ch.

Cette fonction surcharge QString::operator=().

QString &QString::operator=(QLatin1StringView str)

Attribue à cette chaîne la chaîne Latin-1 visualisée par str.

Cette fonction surcharge QString::operator=().

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

Attribue ba à cette chaîne de caractères. Le tableau d'octets est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::operator=().

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

Attribue str à cette chaîne de caractères. Le pointeur const char est converti en Unicode à l'aide de la fonction fromUtf8().

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII ou QT_RESTRICTED_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge la fonction QString::operator=().

QChar &QString::operator[](qsizetype position)

Renvoie le caractère à l'adresse position spécifiée dans la chaîne sous forme de référence modifiable.

Exemple :

QString str;

if (str[0] == QChar('?'))
    str[0] = QChar('_');

Voir aussi at().

const QChar QString::operator[](qsizetype position) const

Cette fonction surcharge QString::operator[]().

Non-membres apparentés

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

Supprime de la chaîne s tous les éléments dont la comparaison est égale à t. Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi erase_if.

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

Supprime de la chaîne s tous les éléments pour lesquels le prédicat pred renvoie la valeur true. Renvoie le nombre d'éléments supprimés, le cas échéant.

Cette fonction a été introduite dans Qt 6.1.

Voir aussi erase.

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

Renvoie true si le tableau d'octets lhs n'est pas égal à l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si la chaîne lhs n'est pas égale à la chaîne rhs; sinon, renvoie false.

Voir aussi Comparing Strings.

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

Renvoie true si lhs n'est pas égal à rhs; sinon, renvoie false.

Pour lhs!= 0, cela équivaut à compare( lhs , rhs ) != 0 . Notez qu'aucune chaîne n'est égale à lhs qui est 0.

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

Le tableau d'octets rhs est converti en QUtf8StringView. Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets, ils seront inclus dans la transformation.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator!=().

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

Renvoie true si la chaîne lhs n'est pas égale à la chaîne rhs. Sinon, elle renvoie false.

Cette fonction surcharge QString::operator!=().

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

Le pointeur rhs const char est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator!=().

[noexcept, since 6.4] QString operator""_s(const char16_t *str, size_t size)

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

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

Le code suivant crée un QString:

using namespace Qt::StringLiterals;

auto str = u"hello"_s;

Cette fonction a été introduite dans Qt 6.4.

Voir aussi Qt::Literals::StringLiterals.

[since 6.9] QString operator+(QStringView lhs, const QString &rhs)

[since 6.9] QString operator+(const QString &lhs, QStringView rhs)

Renvoie une chaîne de caractères qui est le résultat de la concaténation de lhs et rhs.

Ces fonctions ont été introduites dans Qt 6.9.

QString operator+(const QString &s1, const QString &s2)

QString operator+(QString &&s1, const QString &s2)

Renvoie une chaîne qui est le résultat de la concaténation de s1 et s2.

QString operator+(const QString &s1, const char *s2)

Renvoie une chaîne de caractères qui est le résultat de la concaténation de s1 et s2 (s2 est converti en Unicode à l'aide de la fonction QString::fromUtf8()).

Voir aussi QString::fromUtf8().

QString operator+(const char *s1, const QString &s2)

Renvoie une chaîne de caractères qui est le résultat de la concaténation de s1 et s2 (s1 est converti en Unicode à l'aide de la fonction QString::fromUtf8()).

Voir aussi QString::fromUtf8().

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

Renvoie true si le tableau d'octets lhs est lexicalement inférieur à l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si lhs est lexicalement inférieur à rhs; sinon, renvoie false. Pour lhs!= 0, ceci est équivalent à compare(lhs, rhs) < 0.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement inférieur à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator<().

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

Le tableau d'octets rhs est converti en QUtf8StringView. Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets, ils seront inclus dans la transformation.

Vous pouvez désactiver cet opérateur QT_NO_CAST_FROM_ASCII lorsque vous compilez vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator<().

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

Renvoie true si lhs est lexicalement inférieur à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator<().

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

Renvoie true si la chaîne lhs est lexicalement inférieure à la chaîne rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator<().

Voir aussi Comparing Strings.

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

Renvoie true si la chaîne lhs est lexicalement inférieure à la chaîne rhs. Sinon, il renvoie false.

Le pointeur de const char rhs est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator<().

QDataStream &operator<<(QDataStream &stream, const QString &string)

Écrit l'adresse string donnée dans l'adresse stream spécifiée.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

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

Renvoie true si le tableau d'octets lhs est lexicalement inférieur ou égal à l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si la chaîne lhs est lexicalement inférieure ou égale à la chaîne rhs; sinon, renvoie false.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement inférieur ou égal à rhs; sinon, renvoie false. Pour lhs!= 0, ceci est équivalent à compare(lhs, rhs) <= 0.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement inférieur ou égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator<=().

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

Le tableau d'octets rhs est converti en QUtf8StringView. Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets, ils seront inclus dans la transformation.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator<=().

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

Renvoie true si lhs est lexicalement inférieur ou égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator<=().

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

Le pointeur rhs const char est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator<=().

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

Renvoie true si le tableau d'octets lhs est égal à l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si lhs est égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator==().

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

Le tableau d'octets rhs est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Renvoie true si la chaîne lhs est lexicalement égale à rhs. Sinon, elle renvoie false.

Cette fonction surcharge QString::operator==().

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

Renvoie true si lhs est égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator==().

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

Renvoie true si la chaîne lhs est égale à la chaîne rhs; sinon, renvoie false.

Note : Cette fonction traite les chaînes nulles de la même manière que les chaînes vides, pour plus de détails, voir Distinction Between Null and Empty Strings.

Cette fonction surcharge QString::operator==().

Voir aussi Comparing Strings.

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

Le pointeur rhs const char est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator==().

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

Renvoie true si lhs est égal à rhs; sinon, renvoie false. Notez qu'aucune chaîne n'est égale à lhs qui est 0.

Équivalent à lhs != 0 && compare(lhs, rhs) == 0.

Cette fonction surcharge QString::operator==().

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

Renvoie true si le tableau d'octets lhs est lexicalement plus grand que l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si la chaîne lhs est lexicalement plus grande que la chaîne rhs; sinon, renvoie false.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement plus grand que rhs; sinon renvoie false. Équivalent à compare(lhs, rhs) > 0.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement plus grand que rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator>().

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

Le tableau d'octets rhs est converti en QUtf8StringView. Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets, ils seront inclus dans la transformation.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator>().

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

Renvoie true si lhs est lexicalement plus grand que rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator>().

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

Le pointeur rhs const char est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator>().

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

Renvoie true si le tableau d'octets lhs est supérieur ou égal à l'encodage UTF-8 de rhs; sinon, renvoie false.

La comparaison est sensible à la casse.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Vous devez alors appeler explicitement QString::fromUtf8(), QString::fromLatin1() ou QString::fromLocal8Bit() si vous souhaitez convertir le tableau d'octets en QString avant d'effectuer la comparaison.

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

Renvoie true si la chaîne lhs est lexicalement supérieure ou égale à la chaîne rhs; sinon, renvoie false.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement supérieur ou égal à rhs; sinon, renvoie false. Pour lhs!= 0, ceci est équivalent à compare(lhs, rhs) >= 0.

Voir aussi Comparing Strings.

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

Renvoie true si lhs est lexicalement supérieur ou égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator>=().

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

Le tableau d'octets rhs est converti en QUtf8StringView. Si des caractères NUL ('\0') sont intégrés dans le tableau d'octets, ils seront inclus dans la transformation.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator>=().

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

Renvoie true si lhs est lexicalement supérieur ou égal à rhs; sinon, renvoie false.

Cette fonction surcharge QString::operator>=().

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

Le pointeur rhs const char est converti en QUtf8StringView.

Vous pouvez désactiver cet opérateur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications. Cela peut être utile si vous voulez vous assurer que toutes les chaînes visibles par l'utilisateur passent par QObject::tr(), par exemple.

Cette fonction surcharge QString::operator>=().

QDataStream &operator>>(QDataStream &stream, QString &string)

Lit une chaîne de caractères à partir de l'adresse stream spécifiée dans l'adresse string donnée.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

Documentation sur les macros

QStringLiteral(str)

La macro génère les données d'une QString à partir de la chaîne littérale str au moment de la compilation. La création d'un QString à partir de cette chaîne est gratuite dans ce cas, et les données de la chaîne générée sont stockées dans le segment en lecture seule du fichier objet compilé.

Si votre code ressemble à ceci :

// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) {
    //...
}

alors un QString temporaire sera créé pour être transmis en tant que paramètre de la fonction hasAttribute. Cette opération peut être assez coûteuse, car elle implique une allocation de mémoire et la copie/conversion des données dans l'encodage interne de QString.

Ce coût peut être évité en utilisant QStringLiteral à la place :

if (node.hasAttribute(QStringLiteral(u"http-contents-length"))){
    //...
}

Dans ce cas, les données internes de QString seront générées au moment de la compilation ; aucune conversion ou allocation n'aura lieu au moment de l'exécution.

L'utilisation de QStringLiteral au lieu d'un littéral de chaîne C++ simple entre guillemets doubles permet d'accélérer considérablement la création d'instances QString à partir de données connues au moment de la compilation.

Remarque : QLatin1StringView peut encore être plus efficace que QStringLiteral lorsque la chaîne est transmise à une fonction qui possède une surcharge prenant QLatin1StringView et que cette surcharge évite la conversion en QString. Par exemple, QString::operator==() peut comparer à une QLatin1StringView directement :

if (attribute.name() == "http-contents-length"_L1){
    //...
}

Note : Certains compilateurs ont des problèmes pour encoder les chaînes contenant des caractères en dehors du jeu de caractères US-ASCII. Veillez à préfixer votre chaîne avec u dans ces cas-là. Dans les autres cas, ce préfixe est facultatif.

Remarque : QStringLiteral est interchangeable avec operator""_s. Ce dernier permet d'économiser de la frappe lorsque de nombreuses chaînes littérales sont présentes dans le code.

Voir également QByteArrayLiteral.

QT_NO_CAST_FROM_ASCII

Désactive les conversions automatiques des chaînes 8 bits (char *) en chaînes Q Unicode, ainsi que des types 8 bits char (char et unsigned char) en QChar.

Voir aussi QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII, et QT_NO_CAST_FROM_BYTEARRAY.

QT_NO_CAST_TO_ASCII

Désactive la conversion automatique de QString en chaînes de 8 bits (char *).

Voir aussi QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII, et QT_NO_CAST_FROM_BYTEARRAY.

QT_RESTRICTED_CAST_FROM_ASCII

Désactive la plupart des conversions automatiques des littéraux sources et des données 8 bits en chaînes Q unicode, mais autorise l'utilisation des constructeurs QChar(char) et QString(const char (&ch)[N], ainsi que de l'opérateur d'affectation QString::operator=(const char (&ch)[N]). Cela permet de bénéficier de la plupart des avantages de QT_NO_CAST_FROM_ASCII en matière de sécurité des types, mais ne nécessite pas que le code utilisateur enveloppe les caractères et les chaînes de caractères littéraux avec QLatin1Char, QLatin1StringView ou des éléments similaires.

L'utilisation de cette macro avec des chaînes sources en dehors de la plage de 7 bits, des caractères non littéraux ou des caractères littéraux avec des caractères NUL intégrés n'est pas définie.

Voir également QT_NO_CAST_FROM_ASCII et QT_NO_CAST_TO_ASCII.

const char *qPrintable(const QString &str)

Renvoie str sous forme de const char *, ce qui équivaut à str.toLocal8Bit().constData().

Le pointeur char sera invalide après l'instruction dans laquelle qPrintable() est utilisé. Ceci est dû au fait que le tableau retourné par QString::toLocal8Bit() sera hors de portée.

Note : qDebug(), qInfo(), qWarning(), qCritical(), qFatal() s'attendent à ce que les arguments %s soient encodés en UTF-8, alors que qPrintable() convertit en encodage local 8 bits. C'est pourquoi qUtf8Printable() doit être utilisé pour enregistrer les chaînes de caractères plutôt que qPrintable().

Voir aussi qUtf8Printable().

const wchar_t *qUtf16Printable(const QString &str)

Retourne str sous forme de const ushort *, mais transformé en const wchar_t * pour éviter les avertissements. C'est l'équivalent de str.utf16() plus un peu de casting.

La seule chose utile que vous pouvez faire avec la valeur de retour de cette macro est de la passer à QString::asprintf() pour l'utiliser dans une conversion %ls. En particulier, la valeur de retour n' est pas un const wchar_t* valide !

En général, le pointeur sera invalide après l'instruction dans laquelle qUtf16Printable() est utilisée. En effet, le pointeur peut avoir été obtenu à partir d'une expression temporaire, qui sortira de la portée.

Exemple :

qWarning("%ls: %ls", qUtf16Printable(key), qUtf16Printable(value));

Voir également qPrintable(), qDebug(), qInfo(), qWarning(), qCritical() et qFatal().

const char *qUtf8Printable(const QString &str)

Renvoie str sous forme de const char *, ce qui est équivalent à str.toUtf8().constData().

Le pointeur char sera invalide après la déclaration dans laquelle qUtf8Printable() est utilisé. En effet, le tableau retourné par QString::toUtf8() sera hors de portée.

Exemple :

qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));

Voir aussi qPrintable(), qDebug(), qInfo(), qWarning(), qCritical() et qFatal().

© 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.