Класс QString
Класс QString предоставляет строку символов Юникода. Подробнее...
| Заголовок: | #include <QString> |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются повторно-входными.
Публичные типы
| typedef | ConstIterator |
| typedef | Iterator |
| перечисление | NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC } |
| перечисление | SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps } |
| флаги | SectionFlags |
| typedef | const_iterator |
| typedef | const_pointer |
| typedef | const_reference |
| typedef | const_reverse_iterator |
| typedef | difference_type |
| typedef | iterator |
| typedef | pointer |
| typedef | reference |
| typedef | reverse_iterator |
| typedef | size_type |
| typedef | value_type |
Публичные функции
| QString(const QByteArray &ba) | |
| QString(const char *str) | |
| QString(QString &&other) | |
| QString(const QString &other) | |
| QString(QLatin1String str) | |
| QString(int size, QChar ch) | |
| QString(QChar ch) | |
| QString(const QChar *unicode, int size = -1) | |
| QString() | |
| QString & | operator=(const QByteArray &ba) |
| QString & | operator=(QString &&other) |
| QString & | operator=(const QString &other) |
| ~QString() | |
| QString & | append(const QString &str) |
| QString & | append(QChar ch) |
| QString & | append(const QChar *str, int len) |
| QString & | append(const QStringRef &reference) |
| QString & | append(QLatin1String str) |
| QString & | append(const char *str) |
| QString & | append(const QByteArray &ba) |
| QString | arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const |
| QString | arg(const QString &a1, const QString &a2) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const |
| QString | arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const |
| QString | arg(Args &&... args) const |
| const QChar | at(int position) const |
| QChar | back() const |
| QCharRef | back() |
| QString::iterator | begin() |
| QString::const_iterator | begin() const |
| int | capacity() const |
| QString::const_iterator | cbegin() const |
| QString::const_iterator | cend() const |
| void | chop(int n) |
| QString | chopped(int len) const |
| void | очистить() |
| int | сравнить(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | сравнить(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | сравнить(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | сравнить(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | сравнить(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString::const_iterator | constBegin() const |
| const QChar * | constData() const |
| QString::const_iterator | constEnd() const |
| bool | содержит(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | содержит(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | содержит(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | содержит(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | содержит(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | содержит(const QRegExp &rx) const |
| bool | содержит(QRegExp &rx) const |
| bool | содержит(const QRegularExpression &re) const |
| bool | содержит(const QRegularExpression &re, QRegularExpressionMatch *rmatch) const |
| int | количество(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | количество() const |
| int | количество(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | количество(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | количество(const QRegExp &rx) const |
| int | количество(const QRegularExpression &re) 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 | заканчивается_на(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | заканчивается_на(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | заканчивается_на(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | заканчивается_на(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | заканчивается_на(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QString & | заполнить(QChar ch, int size = -1) |
| QChar | первый() const |
| QCharRef | первый() |
| int | найти(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | найти(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | найти(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | найти(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | найти(QStringView str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | найти(const QRegExp &rx, int from = 0) const |
| int | найти(QRegExp &rx, int from = 0) const |
| int | найти(const QRegularExpression &re, int from = 0) const |
| int | найти(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const |
| QString & | вставить(int position, const QString &str) |
| QString & | вставить(int position, QChar ch) |
| QString & | вставить(int position, const QChar *unicode, int size) |
| QString & | вставить(int position, const QStringRef &str) |
| QString & | вставить(int position, QLatin1String str) |
| QString & | вставить(int position, const char *str) |
| QString & | вставить(int position, const QByteArray &str) |
| bool | пустая() const |
| bool | isLower() const |
| bool | isNull() const |
| bool | isRightToLeft() const |
| bool | isUpper() const |
| bool | isValidUtf16() const |
| int | lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(QStringView str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| int | lastIndexOf(const QRegExp &rx, int from = -1) const |
| int | lastIndexOf(QRegExp &rx, int from = -1) const |
| int | lastIndexOf(const QRegularExpression &re, int from = -1) const |
| int | lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const |
| QString | left(int n) const |
| QString | leftJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const |
| QStringRef | leftRef(int n) const |
| int | length() const |
| int | localeAwareCompare(const QString &other) const |
| int | localeAwareCompare(const QStringRef &other) const |
| QString | mid(int position, int n = -1) const |
| QStringRef | midRef(int position, int n = -1) const |
| QString | normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const |
| QString & | prepend(const QString &str) |
| QString & | prepend(QChar ch) |
| QString & | prepend(const QChar *str, int len) |
| QString & | prepend(const QStringRef &str) |
| QString & | prepend(QLatin1String str) |
| QString & | prepend(const char *str) |
| QString & | prepend(const QByteArray &ba) |
| void | push_back(const QString &other) |
| void | push_back(QChar ch) |
| void | push_front(const QString &other) |
| void | push_front(QChar ch) |
| QString::reverse_iterator | rbegin() |
| QString::const_reverse_iterator | rbegin() const |
| QString & | remove(int position, int n) |
| QString & | remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | remove(const QRegExp &rx) |
| QString & | remove(const QRegularExpression &re) |
| QString::reverse_iterator | rend() |
| QString::const_reverse_iterator | rend() const |
| QString | repeated(int times) const |
| QString & | replace(int position, int n, const QString &after) |
| QString & | replace(int position, int n, QChar after) |
| QString & | replace(int position, int n, const QChar *unicode, int size) |
| QString & | replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString & | replace(const QRegExp &rx, const QString &after) |
| QString & | replace(const QRegularExpression &re, const QString &after) |
| void | reserve(int size) |
| void | resize(int size) |
| void | resize(int size, QChar fillChar) |
| QString | right(int n) const |
| QString | rightJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const |
| QStringRef | rightRef(int n) const |
| QString | section(QChar sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString | section(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString | section(const QRegExp ®, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString | section(const QRegularExpression &re, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const |
| QString & | setNum(int n, int base = 10) |
| QString & | setNum(short n, int base = 10) |
| QString & | setNum(ushort n, int base = 10) |
| QString & | setNum(uint n, int base = 10) |
| QString & | setNum(long n, int base = 10) |
| QString & | setNum(ulong n, int base = 10) |
| QString & | setNum(qlonglong n, int base = 10) |
| QString & | setNum(qulonglong n, int base = 10) |
| QString & | setNum(float n, char format = 'g', int precision = 6) |
| QString & | setNum(double n, char format = 'g', int precision = 6) |
| QString & | setRawData(const QChar *unicode, int size) |
| QString & | setUnicode(const QChar *unicode, int size) |
| QString & | setUtf16(const ushort *unicode, int size) |
| void | shrink_to_fit() |
| QString | simplified() const |
| int | размер() const |
| QStringList | split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringList | split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QStringList | split(const QRegExp &rx, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| QStringList | split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| QVector<QStringRef> | splitRef(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QVector<QStringRef> | splitRef(QChar sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QVector<QStringRef> | splitRef(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QVector<QStringRef> | splitRef(const QRegExp &rx, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| QVector<QStringRef> | splitRef(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| void | squeeze() |
| bool | startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| void | swap(QString &other) |
| CFStringRef | toCFString() const |
| QString | toCaseFolded() const |
| double | toDouble(bool *ok = nullptr) 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 |
| short | 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 |
| QVector<uint> | toUcs4() const |
| QString | toUpper() const |
| QByteArray | toUtf8() const |
| int | toWCharArray(wchar_t *array) const |
| QString | trimmed() const |
| void | truncate(int position) |
| const QChar * | unicode() const |
| const ushort * | utf16() const |
| bool | operator!=(QLatin1String other) const |
| bool | operator!=(const char *other) const |
| bool | operator!=(const QByteArray &other) const |
| QString & | operator+=(QChar ch) |
| QString & | operator+=(const QString &other) |
| QString & | operator+=(const QStringRef &str) |
| QString & | operator+=(QLatin1String str) |
| QString & | operator+=(const char *str) |
| QString & | operator+=(const QByteArray &ba) |
| QString & | operator+=(char ch) |
| bool | operator<(QLatin1String other) const |
| bool | operator<(const char *other) const |
| bool | operator<(const QByteArray &other) const |
| bool | operator<=(QLatin1String other) const |
| bool | operator<=(const char *other) const |
| bool | operator<=(const QByteArray &other) const |
| QString & | operator=(QChar ch) |
| QString & | operator=(QLatin1String str) |
| QString & | operator=(const char *str) |
| QString & | operator=(char ch) |
| bool | operator==(QLatin1String other) const |
| bool | operator==(const char *other) const |
| bool | operator==(const QByteArray &other) const |
| bool | operator>(QLatin1String other) const |
| bool | operator>(const char *other) const |
| bool | operator>(const QByteArray &other) const |
| bool | operator>=(QLatin1String other) const |
| bool | operator>=(const char *other) const |
| bool | operator>=(const QByteArray &other) const |
| QCharRef | operator[](int position) |
| const QChar | operator[](int position) const |
| const QChar | operator[](uint position) const |
| QCharRef | operator[](uint position) |
Статические общедоступные члены
| QString | asprintf(const char *cformat, ...) |
| int | compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| int | compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
| QString | fromCFString(CFStringRef string) |
| QString | fromLatin1(const char *str, int size = -1) |
| QString | fromLatin1(const QByteArray &str) |
| QString | fromLocal8Bit(const char *str, int size = -1) |
| QString | fromLocal8Bit(const QByteArray &str) |
| QString | fromNSString(const NSString *string) |
| QString | fromRawData(const QChar *unicode, int size) |
| 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 uint *unicode, int size = -1) |
| QString | fromUcs4(const char32_t *str, int size = -1) |
| QString | fromUtf8(const char *str, int size = -1) |
| QString | fromUtf8(const QByteArray &str) |
| QString | fromUtf16(const ushort *unicode, int size = -1) |
| QString | fromUtf16(const char16_t *str, int size = -1) |
| QString | fromWCharArray(const wchar_t *string, int size = -1) |
| int | localeAwareCompare(const QString &s1, const QString &s2) |
| int | localeAwareCompare(const QString &s1, const QStringRef &s2) |
| QString | number(long n, int base = 10) |
| QString | number(int n, int base = 10) |
| QString | number(uint n, int base = 10) |
| QString | number(ulong n, int base = 10) |
| QString | number(qlonglong n, int base = 10) |
| QString | number(qulonglong n, int base = 10) |
| QString | number(double n, char format = 'g', int precision = 6) |
| QString | vasprintf(const char *cformat, va_list ap) |
Связанные нечлены
| bool | operator!=(const QString &s1, const QString &s2) |
| bool | operator!=(const char *s1, const QString &s2) |
| const QString | operator+(const QString &s1, const QString &s2) |
| const QString | operator+(const QString &s1, const char *s2) |
| const QString | operator+(const char *s1, const QString &s2) |
| const QString | operator+(char ch, const QString &s) |
| const QString | operator+(const QString &s, char ch) |
| bool | operator<(const QString &s1, const QString &s2) |
| bool | operator<(const char *s1, const QString &s2) |
| QDataStream & | operator<<(QDataStream &stream, const QString &string) |
| bool | operator<=(const QString &s1, const QString &s2) |
| bool | operator<=(const char *s1, const QString &s2) |
| bool | operator==(const QString &s1, const QString &s2) |
| bool | operator==(const char *s1, const QString &s2) |
| bool | operator>(const QString &s1, const QString &s2) |
| bool | operator>(const char *s1, const QString &s2) |
| bool | operator>=(const QString &s1, const QString &s2) |
| bool | operator>=(const char *s1, const QString &s2) |
| QDataStream & | operator>>(QDataStream &stream, QString &string) |
Макросы
| QStringLiteral(str) | |
| QT_NO_CAST_FROM_ASCII | |
| QT_NO_CAST_TO_ASCII | |
| QT_RESTRICTED_CAST_FROM_ASCII |
Подробное описание
QString хранит строку из 16-битных QChar, где каждый QChar соответствует одному кодовому элементу UTF-16. (Символы Юникода с кодовыми значениями выше 65535 хранятся с использованием пар суррогатов, то есть двух последовательных QChar.)
Юникод — международный стандарт, поддерживающий большинство современных систем письма. Он является супермножеством US-ASCII (ANSI X3.4-1986) и Latin-1 (ISO 8859-1), и все символы US-ASCII/Latin-1 доступны по тем же кодовым позициям.
Внутри QString используется неявное совместное использование (copy-on-write), чтобы сократить использование памяти и избежать ненужного копирования данных. Это также помогает уменьшить издержки, связанные с хранением 16-битных символов вместо 8-битных.
Помимо QString, Qt также предоставляет класс QByteArray для хранения необработанных байтов и традиционных 8-битных строк с завершением '\0'. В большинстве случаев необходимо использовать QString. Он используется во всей API Qt, а поддержка Юникода гарантирует, что ваши приложения будут легко переводиться, если вы захотите расширить рынок своего приложения в будущем. В двух основных случаях QByteArray уместен: когда вам нужно хранить необработанные двоичные данные и когда крайне важно экономить память (например, встраиваемых системах).
Инициализация строки
Один из способов инициализации QString — просто передать const char * в его конструктор. Например, следующий код создаёт QString размером 5, содержащий данные "Hello":
QString str = "Hello";
QString преобразует const char * данные в Юникод с помощью функции fromUtf8().
Во всех функциях QString, принимающих const char * параметры, const char * интерпретируется как классическая строка C-стиля с завершением '\0', закодированная в UTF-8. Допустимо, чтобы параметр const char * был nullptr.
Вы также можете предоставить данные строки как массив QChar:
static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };
QString str(data, 4); QString создаёт глубокую копию данных QChar, поэтому вы можете изменить их позже без возникновения побочных эффектов. (Если по причинам производительности вам не нужно создавать глубокую копию данных символов, используйте QString::fromRawData() вместо этого.)
Другой подход заключается в установке размера строки с помощью resize() и инициализации данных символ за символом. QString использует индексы с нуля, как и массивы C++. Для доступа к символу в определённой позиции индекса можно использовать operator[](). Для неконстантных строк operator[]() возвращает ссылку на символ, который можно использовать в левой части присваивания. Например:
QString str;
str.resize(4);
str[0] = QChar('U');
str[1] = QChar('n');
str[2] = QChar(0x10e3);
str[3] = QChar(0x03a3); Для только для чтения доступа альтернативная синтаксис — использование функции at():
QString str;
for (int i = 0; i < str.size(); ++i) {
if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f'))
qDebug() << "Found character in range [a-f]";
} Функция at() может быть быстрее, чем operator[](), потому что она никогда не вызывает глубокую копию. В качестве альтернативы используйте функции left(), right() или mid() для извлечения нескольких символов за один раз.
QString может содержать символы '\0' (QChar::Null). Функция size() всегда возвращает размер всей строки, включая встроенные символы '\0'.
После вызова функции resize() значения вновь выделенных символов неопределённы. Чтобы установить все символы строки на определённое значение, используйте функцию fill().
QString предоставляет десятки перегрузок, предназначенных для упрощения работы со строками. Например, если вы хотите сравнить QString со строковой константой, вы можете написать код так, и он будет работать как ожидается:
QString str;
if (str == "auto" || str == "extern"
|| str == "static" || str == "register") {
// ...
} Вы также можете передавать строковые константы функциям, которые принимают QString в качестве аргумента, вызывая конструктор QString(const char *). Аналогично, вы можете передавать QString в функцию, которая принимает const char * аргумент, используя макрос qPrintable(), который возвращает данный QString в качестве const char *. Это эквивалентно вызову <QString>.toLocal8Bit().constData().
Работа со строковыми данными
QString предоставляет следующие базовые функции для изменения данных символов: append(), prepend(), insert(), replace() и remove(). Например:
QString str = "and";
str.prepend("rock "); // str == "rock and"
str.append(" roll"); // str == "rock and roll"
str.replace(5, 3, "&"); // str == "rock & roll" Если вы постепенно строите QString и заранее знаете, примерно, сколько символов он будет содержать, вы можете вызвать reserve(), попросив QString предварительно выделить определённый объём памяти. Вы также можете вызвать capacity(), чтобы узнать, какой объём памяти QString фактически выделил.
В функциях replace() и remove() первые два аргумента — позиция, с которой начинается удаление, и количество символов, которое должно быть удалено. Если вы хотите заменить все вхождения определённой подстроки на другую, используйте одну из двухпараметрических перегрузок replace().
Часто требуется удалить пробельные символы из строки ('\n', '\t', ' ', и т. д.). Если вы хотите удалить пробелы с обоих концов QString, используйте функцию trimmed(). Если вы хотите удалить пробелы с обоих концов и заменить несколько последовательных пробелов одним пробелом в строке, используйте simplified().
Если вы хотите найти все вхождения определённого символа или подстроки в QString, используйте функции indexOf() или lastIndexOf(). Первая ищет вперёд, начиная с заданной позиции индекса, вторая — назад. Обе возвращают позицию индекса символа или подстроки, если находит её; в противном случае возвращают -1. Например, вот типичный цикл, который находит все вхождения определённой подстроки:
QString str = "We must be <b>bold</b>, very <b>bold</b>";
int j = 0;
while ((j = str.indexOf("<b>", j)) != -1) {
qDebug() << "Found <b> tag at index position" << j;
++j;
} QString предоставляет множество функций для преобразования чисел в строки и строк в числа. См. функции arg(), функции setNum(), статические функции number() и функции toInt(), toDouble() и аналогичные функции.
Чтобы получить строку в верхнем или нижнем регистре, используйте toUpper() или toLower().
Списки строк обрабатываются классом QStringList. Вы можете разделить строку на список строк, используя функцию split(), и объединить список строк в одну строку с необязательным разделителем, используя QStringList::join(). Вы можете получить список строк из списка строк, содержащих определённую подстроку или соответствующую определённому QRegExp, используя функцию QStringList::filter().
Запрос данных строки
Если вы хотите проверить, начинается или заканчивается ли QString определённой подстрокой, используйте startsWith() или endsWith(). Если вы просто хотите проверить, содержит ли QString определённый символ или подстроку, используйте функцию contains(). Если вы хотите узнать, сколько раз встречается определённый символ или подстрока в строке, используйте count().
Чтобы получить указатель на фактические данные символов, вызовите data() или constData(). Эти функции возвращают указатель на начало данных QChar. Указатель гарантированно останется действительным до тех пор, пока не будет вызвана функция неконстантного типа на QString.
Сравнение строк
QString можно сравнивать, используя перегруженные операторы, такие как operator<(), operator<=(), operator==(), operator>=() и так далее. Обратите внимание, что сравнение основано исключительно на числовых значениях Юникода символов. Оно очень быстрое, но не соответствует ожиданиям человека; функция QString::localeAwareCompare() обычно является лучшим выбором для сортировки строк пользовательского интерфейса, когда такое сравнение доступно.
В системах Unix-подобных платформах (включая Linux, macOS и iOS), когда Qt связан с библиотекой ICU (а обычно так и есть), используется её сортировка, учитывающая локаль. В противном случае, на macOS и iOS, localeAwareCompare() сравнивает строки в соответствии с настройкой «Порядок для отсортированных списков» в панели «Международные настройки». В других Unix-подобных системах без ICU сравнение обращается к библиотеке системы, strcoll(), возвращаясь, когда она считает строки равными сравнению QString (без учёта локали), описанному выше.
Преобразование между 8-битными строками и строками Юникода
QString предоставляет следующие три функции, которые возвращают const char * версию строки в виде QByteArray: toUtf8(), toLatin1() и toLocal8Bit().
- toLatin1() возвращает 8-битную строку, закодированную в Latin-1 (ISO 8859-1).
- toUtf8() возвращает 8-битную строку, закодированную в UTF-8. UTF-8 — супермножество US-ASCII (ANSI X3.4-1986), поддерживающее весь набор символов Юникода с помощью многобайтовых последовательностей.
- toLocal8Bit() возвращает 8-битную строку, используя кодировку локальной системы.
Для преобразования из этих кодировок QString предоставляет fromLatin1(), fromUtf8() и fromLocal8Bit(). Другие кодировки поддерживаются классом QTextCodec.
END_OF_DOCUMENT_MARKERКак упоминалось выше, QString предоставляет множество функций и операторов, которые упрощают взаимодействие с const char * строками. Однако эта функциональность — обоюдоострый меч: она делает QString более удобным в использовании, если все строки — US-ASCII или Latin-1, но всегда существует риск, что неявное преобразование из или в const char * выполняется с использованием неправильного 8-битного кодирования. Чтобы минимизировать эти риски, вы можете отключить эти неявные преобразования, определив следующие два препроцессорных символа:
-
QT_NO_CAST_FROM_ASCIIотключает автоматические преобразования из строковых литералов и указателей C в Юникод. -
QT_RESTRICTED_CAST_FROM_ASCIIразрешает автоматические преобразования из символов и массивов символов C, но отключает автоматические преобразования из указателей на символы в Юникод. -
QT_NO_CAST_TO_ASCIIотключает автоматическое преобразование из QString в строки C.
Один из способов определения этих препроцессорных символов глобально для вашего приложения — добавить следующую запись в ваш файл проекта qmake:
DEFINES += QT_NO_CAST_FROM_ASCII \
QT_NO_CAST_TO_ASCII Затем вам необходимо явно вызвать fromUtf8(), fromLatin1() или fromLocal8Bit() для построения QString из 8-битной строки или использовать лёгкий класс QLatin1String, например:
QString url = QLatin1String("http://www.unicode.org/"); Аналогично, вы должны явно вызвать toLatin1(), toUtf8() или toLocal8Bit() для преобразования QString в 8-битную строку. (Другие кодировки поддерживаются через класс QTextCodec.)
| Примечание для программистов C |
|---|
Из-за системы типов C++ и того факта, что QString является неявным общим, QStrings могут обрабатываться как int или другие базовые типы. Например:QString Widget::boolToString(bool b)
{
QString result;
if (b)
result = "True";
else
result = "False";
return result;
} Переменная |
Различие между нулевой и пустой строками
По историческим причинам QString различает нулевую и пустую строки. Нулевая строка — это строка, инициализированная с помощью конструктора QString по умолчанию или путём передачи (const char *)0 конструктору. Пустая строка — любая строка с размером 0. Нулевая строка всегда пустая, но пустая строка необязательно нулевая:
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 Все функции, кроме isNull(), обрабатывают нулевые строки так же, как пустые. Например, toUtf8().constData() возвращает допустимый указатель (не nullptr) на символ '\0' для нулевой строки. Рекомендуется всегда использовать функцию isEmpty() и избегать isNull().
Форматы аргументов
В методах-членах, где можно указать аргумент формат (например, arg(), number()), аргумент формат может быть одним из следующих:
| Формат | Значение |
|---|---|
e |
формат как [-]9.9e[+|-]999 |
E |
формат как [-]9.9E[+|-]999 |
f |
формат как [-]9.9 |
g |
используйте e или f формат, какой из них более лаконичен |
G |
используйте E или f формат, какой из них более лаконичен |
Точность также задаётся с помощью аргумента формат. Для форматов 'e', 'E' и 'f', точность представляет количество цифр после десятичной точки. Для форматов 'g' и 'G', точность представляет максимальное количество значащих цифр (завершающие нули опускаются).
Более эффективное построение строк
Многие строки известны во время компиляции. Но тривиальный конструктор QString("Привет"), скопирует содержимое строки, рассматривая содержимое как Latin-1. Чтобы этого избежать, можно использовать макрос QStringLiteral для непосредственного создания необходимых данных во время компиляции. Построение QString из литерала не приводит к дополнительным расходам во время выполнения.
Несколько менее эффективный способ — использовать QLatin1String. Этот класс оборачивает строковый литерал C, предварительно вычисляет его длину во время компиляции и затем может использоваться для более быстрого сравнения с QStrings и преобразования в QStrings, чем обычный строковый литерал C.
Используя оператор QString '+', легко построить сложную строку из нескольких подстрок. Вы часто будете писать код такого типа:
QString foo;
QString type = "long";
foo->setText(QLatin1String("vector<") + type + QLatin1String(">::iterator"));
if (foo.startsWith("(" + type + ") 0x"))
... В обоих случаях построения строк нет ничего плохого, но есть несколько скрытых неэффективностей. Начиная с Qt 4.6, вы можете устранить их.
Во-первых, многократное использование оператора '+' обычно означает несколько выделений памяти. При конкатенации n подстрок, где n > 2, может быть до n - 1 вызовов выделения памяти.
В 4.6 был добавлен внутренний шаблонный класс QStringBuilder, а также несколько вспомогательных функций. Этот класс помечен как внутренний и не отображается в документации, потому что вы не должны его создавать в своём коде. Его использование будет автоматическим, как описано ниже. Класс находится в src/corelib/tools/qstringbuilder.cpp, если вы хотите на него посмотреть.
QStringBuilder использует шаблоны выражений и переопределяет оператор '%', так что при использовании '%' для конкатенации строк вместо '+', многократные конкатенации подстрок будут отложены до момента, когда окончательный результат будет присвоен QString. В этот момент количество памяти, необходимое для конечного результата, известно. Затем выделение памяти происходит один раз для получения необходимого места, и подстроки копируются в него по одной.
Дополнительная эффективность достигается за счёт инлайнинга и уменьшения подсчёта ссылок (созданный из QStringBuilder QString обычно имеет счётчик ссылок 1, в то время как QString::append() требует дополнительной проверки).
Существует два способа доступа к этому улучшенному методу построения строк. Простой способ — включить QStringBuilder где необходимо, и использовать оператор '%' вместо '+' при конкатенации строк:
#include <QStringBuilder>
QString hello("hello");
QStringRef el(&hello, 2, 3);
QLatin1String world("world");
QString message = hello % el % world % QChar('!'); Более глобальный подход, который является наиболее удобным, но не полностью совместимым с исходным кодом, заключается в следующем определении в файле .pro:
DEFINES *= QT_USE_QSTRINGBUILDER
и '+' будет автоматически выполняться как QStringBuilder '%' повсюду.
Максимальный размер и условия отсутствия памяти
Текущая версия QString ограничена чуть менее 2 ГБ (2^31 байт) в размере. Точное значение зависит от архитектуры, поскольку оно зависит от накладных расходов на управление блоком данных, но не превышает 32 байта. Блоки необработанных данных также ограничены использованием типа int в текущей версии до 2 ГБ минус 1 байт. Поскольку QString использует два байта на символ, это соответствует чуть менее 2^30 символов в одном QString.
В случае неудачи выделения памяти QString выбросит исключение std::bad_alloc. Ситуации отсутствия памяти в контейнерах Qt — единственный случай, когда Qt выбросит исключение.
Обратите внимание, что операционная система может устанавливать дополнительные ограничения для приложений, использующих большое количество выделенной памяти, особенно для больших, непрерывных блоков. Такие соображения, конфигурация такого поведения или любые смягчения лежат за пределами сферы API Qt.
См. также fromRawData(), QChar, QLatin1String, QByteArray и QStringRef.
Документация по типам членов
typedef QString::ConstIterator
Синоним Qt-стиля для QString::const_iterator.
typedef QString::Iterator
Синоним Qt-стиля для QString::iterator.
enum QString::NormalizationForm
Этот перечисление описывает различные нормализованные формы текста Юникод.
| Постоянная | Значение | Описание |
|---|---|---|
QString::NormalizationForm_D |
0 |
Каноническое разложение |
QString::NormalizationForm_C |
1 |
Каноническое разложение, за которым следует каноническое объединение |
QString::NormalizationForm_KD |
2 |
Разложение совместимости |
QString::NormalizationForm_KC |
3 |
Разложение совместимости, за которым следует каноническое объединение |
См. также normalized() и Приложение 15 к стандарту Юникод.
enum QString::SectionFlagflags QString::SectionFlags
Это перечисление задаёт флаги, которые могут быть использованы для влияния на различные аспекты поведения функции section() в отношении разделителей и пустых полей.
| Константа | Значение | Описание |
|---|---|---|
QString::SectionDefault |
0x00 |
Пустые поля учитываются, ведущие и хвостовые разделители не включаются, и разделитель сравнивается с учётом регистра. |
QString::SectionSkipEmpty |
0x01 |
Пустые поля обрабатываются так, как будто их не существует, т.е. они не учитываются при определении start и end. |
QString::SectionIncludeLeadingSep |
0x02 |
В строку-результат включается ведущий разделитель (если есть). |
QString::SectionIncludeTrailingSep |
0x04 |
В строку-результат включается хвостовой разделитель (если есть). |
QString::SectionCaseInsensitiveSeps |
0x08 |
Разделитель сравнивается без учёта регистра. |
Тип SectionFlags — это псевдоним для QFlags<SectionFlag>. Он хранит логическое ИЛИ комбинацию значений SectionFlag.
См. также section().
typedef QString::const_iterator
См. также QString::iterator.
typedef QString::const_pointer
Псевдоним QString::const_pointer предоставляет указатель типа const на элемент QString (QChar) в стиле STL.
typedef QString::const_reference
typedef QString::const_reverse_iterator
Этот псевдоним был введён в Qt 5.6.
См. также QString::reverse_iterator и QString::const_iterator.
typedef QString::difference_type
typedef QString::iterator
См. также QString::const_iterator.
typedef QString::pointer
Псевдоним QString::const_pointer предоставляет указатель типа на элемент QString (QChar) в стиле STL.
typedef QString::reference
typedef QString::reverse_iterator
Этот псевдоним был введён в Qt 5.6.
См. также QString::const_reverse_iterator и QString::iterator.
typedef QString::size_type
typedef QString::value_type
Документация по членам-функциям
template <typename Args> QString QString::arg(Args &&... args) const
Заменяет вхождения %N в этой строке соответствующим аргументом из args. Аргументы не позиционные: первый из args заменяет %N с наименьшим N (все из них), второй из args заменяет %N с следующим наименьшим N и т.д.
Args может содержать что угодно, что неявно преобразуется в QString, QStringView или QLatin1String.
Кроме того, также поддерживаются следующие типы: QChar, QLatin1Char.
Эта функция была добавлена в Qt 5.14.
См. также QString::arg().
QString::QString(const QByteArray &ba)
Конструирует строку, инициализированную байтовым массивом ba. Данный массив байтов преобразуется в Unicode с помощью fromUtf8(). Остановка копирования происходит на первом символе 0, в противном случае копируется весь массив байтов.
Вы можете отключить этот конструктор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также fromLatin1(), fromLocal8Bit(), fromUtf8(), и QT_NO_CAST_FROM_ASCII.
QString::QString(const char *str)
Конструирует строку, инициализированную 8-битной строкой str. Указанный указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить этот конструктор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
Примечание: Определение QT_RESTRICTED_CAST_FROM_ASCII также отключает этот конструктор, но вместо него включает конструктор QString(const char (&ch)[N]). Использование нелитеральных входных данных или входных данных с вставленными нулевыми символами или символами, не принадлежащими набору 7 бит, в этом случае неопределено.
См. также fromLatin1(), fromLocal8Bit(), fromUtf8(), QT_NO_CAST_FROM_ASCII и QT_RESTRICTED_CAST_FROM_ASCII.
QString::QString(QString &&other)
Перемещающий конструктор QString, который делает так, что экземпляр указывает на тот же объект, что и other.
Эта функция была добавлена в Qt 5.2.
QString::QString(const QString &other)
Создаёт копию other.
Эта операция занимает постоянное время, потому что QString имеет неявную совместную обработку. Это делает возврат QString из функции очень быстрым. Если изменён общий экземпляр, он будет скопирован (copy-on-write), и это занимает линейное время.
См. также operator=().
QString::QString(QLatin1String str)
Создаёт копию латинской-1 строки str.
См. также fromLatin1().
QString::QString(int size, QChar ch)
Создаёт строку заданного размера size, где каждый символ равен ch.
См. также fill().
QString::QString(QChar ch)
Создаёт строку размером 1, содержащую символ ch.
QString::QString(const QChar *unicode, int size = -1)
Создаёт строку, инициализированную первыми size символами массива QChar unicode.
Если unicode равно 0, создаётся пустая строка.
Если size отрицательно, предполагается, что unicode указывает на массив, завершённый символом '\0', и его длина определяется динамически. Завершающий нулевой символ не считается частью строки.
QString создаёт глубокую копию данных строки. Данные unicode копируются как есть, и метка порядка байтов сохраняется, если она присутствует.
См. также fromRawData().
QString::QString()
Создаёт пустую строку. Пустые строки также являются нулевыми.
См. также isEmpty().
QString &QString::operator=(const QByteArray &ba)
Эта функция перегружает оператор =().
Присваивает ba этой строке. Байтовый массив преобразуется в Unicode с помощью функции fromUtf8(). Функция останавливает преобразование на первом найденном нулевом символе или в конце байтового массива ba.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::operator=(QString &&other)
Перемещающее присваивание other этому экземпляру QString.
Эта функция была добавлена в Qt 5.2.
QString &QString::operator=(const QString &other)
Присваивает other этой строке и возвращает ссылку на эту строку.
QString::~QString()
Удаляет строку.
QString &QString::append(const QString &str)
Добавляет строку str в конец этой строки.
Пример:
QString x = "free"; QString y = "dom"; x.append(y); // x == "freedom"
Это то же самое, что использовать функцию insert():
x.insert(x.size(), y);
Функция append() обычно очень быстрая (постоянное время), потому что QString предварительно выделяет дополнительное пространство в конце данных строки, поэтому она может расти без перераспределения всей строки каждый раз.
См. также operator+=(), prepend(), и insert().
QString &QString::append(QChar ch)
Эта функция перегружает append().
Добавляет символ ch к этому строковому значению.
QString &QString::append(const QChar *str, int len)
Эта функция перегружает append().
Добавляет len символов из массива QChar str к этому строковому значению.
Эта функция была добавлена в Qt 5.0.
QString &QString::append(const QStringRef &reference)
Добавляет указанную строку reference к этому строковому значению и возвращает результат.
Эта функция была добавлена в Qt 4.4.
QString &QString::append(QLatin1String str)
Эта функция перегружает append().
Добавляет строку Latin-1 str к этому строковому значению.
QString &QString::append(const char *str)
Эта функция перегружает append().
Добавляет строку str к этому строковому значению. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::append(const QByteArray &ba)
Эта функция перегружает append().
Добавляет массив байтов ba к этому строковому значению. Указанный массив байтов преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString QString::arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Возвращает копию этой строки, в которой маркер с наименьшим номером заменён строкой a, т.е., %1, %2, ..., %99.
fieldWidth задаёт минимальное количество места, которое должно занимать аргумент a. Если a требует меньше места, чем fieldWidth, оно дополняется до fieldWidth символом fillChar. Положительное значение fieldWidth приводит к правому выравниванию текста. Отрицательное значение fieldWidth приводит к левому выравниванию текста.
В этом примере показано, как можно создать строку status для отчёта о ходе выполнения при обработке списка файлов:
QString i; // current file's number
QString total; // number of files to process
QString fileName; // current file's name
QString status = QString("Processing file %1 of %2: %3")
.arg(i).arg(total).arg(fileName); Сначала arg(i) заменяет %1. Затем arg(total) заменяет %2. Наконец, arg(fileName) заменяет %3.
Одно из преимуществ использования arg() по сравнению с asprintf() заключается в том, что порядок порядковых маркеров может измениться, если строки приложения переведены на другие языки, но каждая arg() всё равно заменит маркер с наименьшим номером, который ещё не был заменён, независимо от его расположения. Кроме того, если маркер %i встречается в строке более одного раза, arg() заменит все из них.
Если не осталось незаменённых маркеров, выводится сообщение об ошибке, и результат не определён. Номера маркеров должны быть в диапазоне от 1 до 99.
QString QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth задаёт минимальное количество места, до которого дополняется a и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть от 2 до 36, при этом 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.
Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth задаёт минимальное количество места, до которого дополняется a и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. base должен быть от 2 до 36, при этом 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.
Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth задаёт минимальное количество места, до которого дополняется a и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Аргумент a выражается в заданном base, по умолчанию 10 и должен быть от 2 до 36.
Символ '%' может быть после 'L', в этом случае последовательность заменяется на локальную версию представления a. Преобразование использует локаль по умолчанию. Локаль по умолчанию определяется из настроек системы во время запуска приложения. Она может быть изменена с помощью QLocale::setDefault(). Флаг 'L' игнорируется, если base не равен 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" Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth задаёт минимальное количество места, до которого дополняется a и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть от 2 до 36, при этом 8 даёт восьмеричное, 10 десятичное и 16 шестнадцатеричное числа.
Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
Аргумент a выражается в системе счисления base, по умолчанию 10 и должен быть от 2 до 36. Для оснований, отличных от 10, a рассматривается как целое без знака.
fieldWidth задаёт минимальное количество места, до которого дополняется a и заполняется символом fillChar. Положительное значение приводит к правому выравниванию текста; отрицательное значение приводит к левому выравниванию текста.
Символ '%' может быть после 'L', в этом случае последовательность заменяется на локальную версию представления a. Преобразование использует локаль по умолчанию, установленную с помощью QLocale::setDefault(). Если локаль по умолчанию не указана, используется локаль "C". Флаг 'L' игнорируется, если base не равен 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" Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
Аргумент base задаёт основание, используемое при преобразовании целого числа a в строку. Основание должно быть от 2 до 36.
Если fillChar равно '0' (число 0, ASCII 48), используется нуль текущего языка. Для отрицательных чисел нулевое заполнение может предшествовать знаку минус.
QString QString::arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth указывает минимальное количество символов, используемых для выравнивания a и заполнения его символом fillChar. Положительное значение приводит к правостороннему выравниванию текста; отрицательное значение — к левостороннему.
Аргумент base указывает систему счисления, используемую при преобразовании целого числа a в строку. Система счисления должна быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системе.
Если fillChar равно '0' (цифра 0, ASCII 48), используется нуль из текущего языка. Для отрицательных чисел нулевое заполнение может появиться перед знаком минус.
QString QString::arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
fieldWidth указывает минимальное количество символов, используемых для выравнивания a и заполнения его символом fillChar. Положительное значение приводит к правостороннему выравниванию текста; отрицательное значение — к левостороннему.
Аргумент base указывает систему счисления, используемую при преобразовании целого числа a в строку. Система счисления должна быть в диапазоне от 2 до 36, при этом 8 соответствует восьмеричной, 10 — десятичной, а 16 — шестнадцатеричной системе.
Если fillChar равно '0' (цифра 0, ASCII 48), используется нуль из текущего языка. Для отрицательных чисел нулевое заполнение может появиться перед знаком минус.
QString QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
Аргумент a форматируется в соответствии со спецификациями format и precision. Подробности см. в разделе Форматы аргументов.
fieldWidth указывает минимальное количество символов, используемых для выравнивания a и заполнения его символом fillChar. Положительное значение приводит к правостороннему выравниванию текста; отрицательное значение — к левостороннему.
double d = 12.34;
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01" Символ '%' может быть последован символом 'L', в этом случае последовательность заменяется локальным представлением a. Преобразование использует локаль по умолчанию, установленную функцией QLocale::setDefault(). Если локаль по умолчанию не задана, используется локаль "C".
Если fillChar равно '0' (цифра 0, ASCII 48), в этой функции используется нуль из текущей локали для заполнения. Для отрицательных чисел нулевое заполнение, вероятно, появится перед знаком минус.
См. также QLocale::toString().
QString QString::arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
Аргумент a интерпретируется как символ Latin-1.
QString QString::arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Эта функция перегружает arg().
QString QString::arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Это перегруженная функция.
Возвращает копию этой строки с заменой меток с наименьшим номером на строку a, т.е., %1, %2, ..., %99.
fieldWidth указывает минимальное количество символов, занимаемых a. Если a занимает меньше места, чем fieldWidth, она дополняется символом fillChar до fieldWidth. Положительное значение fieldWidth приводит к правостороннему выравниванию текста. Отрицательное значение fieldWidth — к левостороннему.
В этом примере показано, как можно создать status строку для отчета о ходе обработки списка файлов:
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); Во-первых, arg(i) заменяет %1. Затем arg(total) заменяет %2. Наконец, arg(fileName) заменяет %3.
Одно из преимуществ использования arg() по сравнению с asprintf() заключается в том, что порядок меток с номерами может измениться при переводе строк приложения на другие языки, но каждая arg() по-прежнему будет заменять метку с наименьшим номером, независимо от её расположения. Кроме того, если метка %i встречается в строке несколько раз, arg() заменит все такие метки.
Если незамещенных меток больше нет, выводится сообщение об ошибке, и результат является неопределенным. Номера меток должны быть в диапазоне от 1 до 99.
Эта функция была добавлена в Qt 5.10.
QString QString::arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
Это перегруженная функция.
Возвращает копию этой строки с заменой меток с наименьшим номером на строку a, т.е., %1, %2, ..., %99.
fieldWidth указывает минимальное количество символов, занимаемых a. Если a занимает меньше места, чем fieldWidth, она дополняется символом fillChar до fieldWidth. Положительное значение fieldWidth приводит к правостороннему выравниванию текста. Отрицательное значение fieldWidth — к левостороннему.
Одно из преимуществ использования arg() по сравнению с asprintf() заключается в том, что порядок меток с номерами может измениться при переводе строк приложения на другие языки, но каждая arg() по-прежнему будет заменять метку с наименьшим номером, независимо от её расположения. Кроме того, если метка %i встречается в строке несколько раз, arg() заменит все такие метки.
Если незамещенных меток больше нет, выводится сообщение об ошибке, и результат является неопределенным. Номера меток должны быть в диапазоне от 1 до 99.
Эта функция была добавлена в Qt 5.10.
QString QString::arg(const QString &a1, const QString &a2) const
Эта функция перегружает arg().
Это то же самое, что и str.arg(a1).arg(a2), за исключением того, что строки a1 и a2 заменяются за один проход. Это может иметь значение, если a1 содержит, например, %1:
QString str;
str = "%1 %2";
str.arg("%1f", "Hello"); // returns "%1f Hello"
str.arg("%1f").arg("Hello"); // returns "Hellof %2" Аналогичная проблема возникает, когда метки с номерами не разделены пробелами:
QString str;
str = "%1%3%2";
str.arg("Hello").arg(20).arg(50); // returns "Hello500"
str = "%1%2%3";
str.arg("Hello").arg(50).arg(20); // returns "Hello5020" Рассмотрим замены:
- Во-первых,
Helloзаменяет%1, поэтому строка становится"Hello%3%2". - Затем,
20заменяет%2, поэтому строка становится"Hello%320". - Поскольку максимальное значение пронумерованных меток — 99,
50заменяет%32.
Таким образом, строка окончательно становится "Hello500".
В таких случаях следующее дает ожидаемые результаты:
QString str;
str = "%1%3%2";
str.arg("Hello", QString::number(20), QString::number(50)); // returns "Hello5020" QString QString::arg(const QString &a1, const QString &a2, const QString &a3) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3), за исключением того, что строки a1, a2 и a3 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4), за исключением того, что строки a1, a2, a3 и a4 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5), за исключением того, что строки a1, a2, a3, a4 и a5 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6)), за исключением того, что строки a1, a2, a3, a4, a5 и a6 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7), за исключением того, что строки a1, a2, a3, a4, a5, a6 и a7 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7 и a8 заменяются за один проход.
QString QString::arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6, const QString &a7, const QString &a8, const QString &a9) const
Эта функция перегружает arg().
Это то же самое, что вызов str.arg(a1).arg(a2).arg(a3).arg(a4).arg(a5).arg(a6).arg(a7).arg(a8).arg(a9), за исключением того, что строки a1, a2, a3, a4, a5, a6, a7, a8 и a9 заменяются за один проход.
[static] QString QString::asprintf(const char *cformat, ...)
Безопасно создаёт форматированную строку из строки формата cformat и произвольного списка аргументов.
Строка формата поддерживает спецификаторы преобразования, модификаторы длины и флаги, предоставленные функцией printf() в стандартной библиотеке C++. Строка cformat и %s аргументы должны быть закодированы в UTF-8.
Примечание: Последовательность escape %lc ожидает символ Юникода типа char16_t, или ushort (как возвращает QChar::unicode()). Последовательность escape %ls ожидает указатель на нуль-терминированный массив символов Юникода типа char16_t, или ushort (как возвращает QString::utf16()). Это расходится с функцией printf() в стандартной библиотеке C++, которая определяет %lc для вывода wchar_t и %ls для вывода wchar_t*, и также может генерировать предупреждения компилятора на платформах, где размер wchar_t не равен 16 битам.
Предупреждение: Не рекомендуется использовать QString::asprintf() в новом коде Qt. Вместо этого рассмотрите использование QTextStream или arg(), которые поддерживают строки Юникода без проблем и являются безопасными с точки зрения типов. Вот пример, который использует QTextStream:
QString result; QTextStream(&result) << "pi = " << 3.14; // result == "pi = 3.14"
Для переводов, особенно если строки содержат более одной последовательности escape, следует использовать функцию arg(). Это позволяет контролировать порядок замен переводчику.
Эта функция была введена в Qt 5.5.
См. также arg().
const QChar QString::at(int position) const
Возвращает символ по указанному индексу position в строке.
position должен быть допустимым индексом в строке (т.е., 0 <= position < size()).
См. также operator[]().
QChar QString::back() const
Возвращает последний символ в строке. То же самое, что и at(size() - 1).
Эта функция предоставлена для совместимости со STL.
Предупреждение: Вызов этой функции для пустой строки является неопределённым поведением.
Эта функция была введена в Qt 5.10.
См. также front(), at() и operator[]().
QCharRef QString::back()
Возвращает ссылку на последний символ в строке. То же самое, что и operator[](size() - 1).
Эта функция предоставлена для совместимости со STL.
Предупреждение: Вызов этой функции для пустой строки является неопределённым поведением.
Эта функция была введена в Qt 5.10.
См. также front(), at() и operator[]().
QString::iterator QString::begin()
Возвращает итератор STL, указывающий на первый символ в строке.
См. также constBegin() и end().
QString::const_iterator QString::begin() const
Эта функция перегружает begin().
int QString::capacity() const
Возвращает максимальное количество символов, которое может быть хранимо в строке без принудительной переаллокации.
Единственная цель этой функции — предоставить способ тонкой настройки использования памяти QString. Как правило, вам редко понадобится вызывать эту функцию. Если вы хотите узнать, сколько символов находится в строке, вызовите size().
См. также reserve() и squeeze().
QString::const_iterator QString::cbegin() const
Возвращает постоянный итератор STL, указывающий на первый символ в строке.
Эта функция была введена в Qt 5.0.
QString::const_iterator QString::cend() const
Возвращает постоянный итератор STL, указывающий на воображаемый символ после последнего символа в списке.
Эта функция была введена в Qt 5.0.
void QString::chop(int n)
Удаляет n символов из конца строки.
Если n больше или равно size(), результат — пустая строка; если n отрицательно, это эквивалентно передаче нуля.
Пример:
QString str("LOGOUT\r\n");
str.chop(2);
// str == "LOGOUT" Если вы хотите удалить символы с начала строки, используйте remove() вместо этого.
См. также truncate(), resize(), remove() и QStringRef::chop().
QString QString::chopped(int len) const
Возвращает подстроку, содержащую size() - len левых символов этой строки.
Примечание: Поведение неопределено, если len отрицательно или больше size().
Эта функция была введена в Qt 5.10.
См. также endsWith(), left(), right(), mid(), chop() и truncate().
void QString::clear()
Очищает содержимое строки и делает её пустой.
См. также resize() и isNull().
[static] int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Сравнивает s1 с s2 и возвращает целое число, меньшее, равное или большее нуля, если s1 меньше, равна или больше s2.
Если cs равен Qt::CaseSensitive, сравнение выполняется с учётом регистра; в противном случае сравнение выполняется без учёта регистра.
Сравнение с учётом регистра основано исключительно на числовых значениях Unicode символов и очень быстрое, но не то, чего ожидает человек. Рассмотрите сортировку строк, видимых пользователю, с помощью 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 Эта функция была введена в Qt 4.2.
См. также operator==(), operator<(), operator>() и Сравнение строк.
int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Лексически сравнивает эту строку с строкой other и возвращает целое число, меньшее, равное или больше нуля, если эта строка меньше, равна или больше, чем другая строка.
То же самое, что и compare(*this, other, cs).
Функция была добавлена в Qt 4.2.
int QString::compare(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Сравнивает ссылку на строку ref со строкой и возвращает целое число, меньшее, равное или больше нуля, если строка меньше, равна или больше, чем ref.
int QString::compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
То же самое, что и compare(*this, other, cs).
Функция была добавлена в Qt 4.2.
int QString::compare(QStringView s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Производит сравнение этой строки с s, используя установку чувствительности к регистру cs.
Функция была добавлена в Qt 5.12.
int QString::compare(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает compare().
Производит сравнение этой строки с ch, используя установку чувствительности к регистру cs.
Функция была добавлена в Qt 5.14.
int QString::compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
Производит сравнение s1 и s2, используя установку чувствительности к регистру cs.
Функция была добавлена в Qt 4.2.
int QString::compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
Производит сравнение s1 и s2, используя установку чувствительности к регистру cs.
Функция была добавлена в Qt 4.2.
int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает compare().
QString::const_iterator QString::constBegin() const
Возвращает константный итератор STL, указывающий на первый символ в строке.
См. также begin() и constEnd().
const QChar *QString::constData() const
Возвращает указатель на данные, хранящиеся в QString. Указатель может быть использован для доступа к символам, составляющим строку.
Обратите внимание, что указатель остается действительным только до тех пор, пока строка не будет изменена.
Примечание: Возвращаемая строка может не быть завершена символом '\0'. Используйте size(), чтобы определить длину массива.
См. также data(), operator[]() и fromRawData().
QString::const_iterator QString::constEnd() const
Возвращает константный итератор STL, указывающий на воображаемый символ после последнего символа в списке.
См. также constBegin() и end().
bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true , если эта строка содержит вхождение строки str; в противном случае возвращает false.
Если cs равен Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Пример:
QString str = "Peter Pan";
str.contains("peter", Qt::CaseInsensitive); // returns true См. также indexOf() и count().
bool QString::contains(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает contains().
Возвращает true , если эта строка содержит вхождение символа ch; в противном случае возвращает false.
bool QString::contains(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true , если эта строка содержит вхождение ссылки на строку str; в противном случае возвращает false.
Если cs равен Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Функция была добавлена в Qt 4.8.
См. также indexOf() и count().
bool QString::contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает contains().
Возвращает true , если эта строка содержит вхождение латинской строки str; в противном случае возвращает false.
Функция была добавлена в Qt 5.3.
bool QString::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает contains().
Возвращает true , если эта строка содержит вхождение представления строки str; в противном случае возвращает false.
Если cs равен Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Функция была добавлена в Qt 5.14.
См. также indexOf() и count().
bool QString::contains(const QRegExp &rx) const
Эта функция перегружает contains().
Возвращает true , если регулярное выражение rx совпадает где-либо в этой строке; в противном случае возвращает false.
bool QString::contains(QRegExp &rx) const
Эта функция перегружает contains().
Возвращает true , если регулярное выражение rx совпадает где-либо в этой строке; в противном случае возвращает false.
Если совпадение найдено, регулярное выражение rx будет содержать сопоставленные захваты (см. QRegExp::matchedLength, QRegExp::cap).
Функция была добавлена в Qt 4.5.
bool QString::contains(const QRegularExpression &re) const
Эта функция перегружает contains().
Возвращает true , если регулярное выражение re совпадает где-либо в этой строке; в противном случае возвращает false.
Функция была добавлена в Qt 5.0.
bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch) const
Эта функция перегружает contains().
Возвращает true , если регулярное выражение re совпадает где-либо в этой строке; в противном случае возвращает false.
Если совпадение найдено и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Функция была добавлена в Qt 5.1.
См. также QRegularExpression::match().
END_OF_DOCUMENT_MARKERint QString::count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает количество (возможно перекрывающихся) вхождений строки str в этой строке.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
См. также contains() и indexOf().
int QString::count() const
Эта функция перегружает count().
То же, что и size().
int QString::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество вхождений символа ch в строке.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
См. также contains() и indexOf().
int QString::count(const QStringRef &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает count().
Возвращает количество (возможно перекрывающихся) вхождений ссылки на строку str в этой строке.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Эта функция была добавлена в Qt 4.8.
См. также contains() и indexOf().
int QString::count(const QRegExp &rx) const
Эта функция перегружает count().
Возвращает количество совпадений с регулярным выражением rx в строке.
Функция учитывает перекрывающиеся совпадения, поэтому в примере ниже есть четыре вхождения "ana" или "ama":
QString str = "banana and panama";
str.count(QRegExp("a[nm]a")); // returns 4 int QString::count(const QRegularExpression &re) const
Эта функция перегружает count().
Возвращает количество совпадений с регулярным выражением re в строке.
Функция учитывает перекрывающиеся совпадения, поэтому в примере ниже есть четыре вхождения "ana" или "ama":
QString str = "banana and panama";
str.count(QRegularExpression("a[nm]a")); // returns 4 Эта функция была добавлена в Qt 5.0.
QString::const_reverse_iterator QString::crbegin() const
Возвращает постоянный итератор обратного обхода STL-стиля, указывающий на первый символ в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также begin(), rbegin() и rend().
QString::const_reverse_iterator QString::crend() const
Возвращает постоянный итератор обратного обхода STL-стиля, указывающий на позицию после последнего символа в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также end(), rend() и rbegin().
QChar *QString::data()
Возвращает указатель на данные, хранящиеся в QString. Указатель может использоваться для доступа и изменения символов, составляющих строку.
В отличие от constData() и unicode(), возвращаемые данные всегда завершаются '\0'.
Пример:
QString str = "Hello world";
QChar *data = str.data();
while (!data->isNull()) {
qDebug() << data->unicode();
++data;
} Обратите внимание, что указатель остается действительным только до тех пор, пока строка не изменяется другими способами. Для чтения без изменений constData() быстрее, поскольку он никогда не вызывает глубокую копию.
См. также constData() и operator[]().
const QChar *QString::data() const
Это перегруженная функция.
Примечание: Возвращаемая строка может не завершаться '\0'. Используйте size(), чтобы определить длину массива.
См. также fromRawData().
QString::iterator QString::end()
Возвращает итератор STL-стиля, указывающий на вымышленный символ после последнего символа в строке.
См. также begin() и constEnd().
QString::const_iterator QString::end() const
Эта функция перегружает end().
bool QString::endsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true если строка оканчивается на s; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
QString str = "Bananas";
str.endsWith("anas"); // returns true
str.endsWith("pple"); // returns false См. также startsWith().
bool QString::endsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает endsWith().
Возвращает true если строка оканчивается на строку s; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Эта функция была добавлена в Qt 4.8.
См. также startsWith().
bool QString::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает endsWith().
Возвращает true если строка оканчивается на строку str; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае — без учёта регистра.
Эта функция была добавлена в Qt 5.10.
См. также startsWith().
bool QString::endsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает endsWith().
bool QString::endsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true если строка оканчивается на c; в противном случае возвращает false.
Эта функция перегружает endsWith().
QString &QString::fill(QChar ch, int size = -1)
Устанавливает каждый символ в строке на символ ch. Если size отличается от -1 (по умолчанию), размер строки предварительно устанавливается в size.
Пример:
QString str = "Berlin";
str.fill('z');
// str == "zzzzzz"
str.fill('A', 2);
// str == "AA" См. также resize().
[static] QString QString::fromCFString(CFStringRef string)
Создаёт новый QString, содержащий копию CFString string.
Примечание: эта функция доступна только в OS X и iOS.
Эта функция была добавлена в Qt 5.2.
[static] QString QString::fromLatin1(const char *str, int size = -1)
Возвращает QString, инициализированный первыми size символами латинской-1 строки str.
Если size равно -1 (по умолчанию), оно принимается как strlen(str).
См. также toLatin1(), fromUtf8() и fromLocal8Bit().
[static] QString QString::fromLatin1(const QByteArray &str)
Это перегруженная функция.
Возвращает QString, инициализированный латинской-1 строкой str.
Эта функция была добавлена в Qt 5.0.
[static] QString QString::fromLocal8Bit(const char *str, int size = -1)
Возвращает QString, инициализированный первыми size символами 8-битной строки str.
Если size равно -1 (по умолчанию), оно принимается как strlen(str).
QTextCodec::codecForLocale() используется для выполнения преобразования.
См. также toLocal8Bit(), fromLatin1() и fromUtf8().
[static] QString QString::fromLocal8Bit(const QByteArray &str)
Это перегруженный функцией.
Возвращает QString, инициализированную 8-битной строкой str.
Эта функция была представлена в Qt 5.0.
[static] QString QString::fromNSString(const NSString *string)
Создаёт новый QString, содержащий копию string NSString.
Примечание: эта функция доступна только на OS X и iOS.
Эта функция была представлена в Qt 5.2.
[static] QString QString::fromRawData(const QChar *unicode, int size)
Создаёт QString, использующий первые size символов Юникода в массиве unicode. Данные в unicode не копируются. Вызывающая сторона должна гарантировать, что unicode не будет удалён или изменён, пока существует QString (или неизменная его копия).
Любые попытки изменить QString или его копии приведут к созданию глубокой копии данных, гарантируя, что исходные данные не будут изменены.
Вот пример, как можно использовать QRegularExpression для данных в памяти без необходимости копирования данных в QString:
QRegularExpression pattern("\u00A4");
static const QChar unicode[] = {
0x005A, 0x007F, 0x00A4, 0x0060,
0x1009, 0x0020, 0x0020};
int size = sizeof(unicode) / sizeof(QChar);
QString str = QString::fromRawData(unicode, size);
if (str.contains(pattern) {
// ...
} Предупреждение: строка, созданная с помощью fromRawData(), не завершается '\0', если только исходные данные не содержат '\0' символ в позиции size. Это означает, что unicode() не вернёт строку, завершающуюся '\0' (хотя utf16() делает это, но с копированием исходных данных).
См. также fromUtf16() и setRawData().
[static] QString QString::fromStdString(const std::string &str)
Возвращает копию строки str. Указанная строка преобразуется в Юникод с помощью функции fromUtf8().
См. также fromLatin1(), fromLocal8Bit(), fromUtf8() и QByteArray::fromStdString().
[static] QString QString::fromStdU16String(const std::u16string &str)
Возвращает копию строки str. Предполагается, что данная строка закодирована в UTF-16.
Эта функция была представлена в Qt 5.5.
См. также fromUtf16(), fromStdWString() и fromStdU32String().
[static] QString QString::fromStdU32String(const std::u32string &str)
Возвращает копию строки str. Предполагается, что данная строка закодирована в UCS-4.
Эта функция была представлена в Qt 5.5.
См. также fromUcs4(), fromStdWString() и fromStdU16String().
[static] QString QString::fromStdWString(const std::wstring &str)
Возвращает копию строки str. Если размер wchar_t равен 2 байтам (например, в Windows), данная строка интерпретируется как UTF-16, а если 4 байтам (большинство Unix-систем), как UCS-4.
См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String() и fromStdU32String().
[static] QString QString::fromUcs4(const uint *unicode, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникод-строки unicode (в кодировке ISO-10646-UCS-4).
Если size равно -1 (по умолчанию), unicode должен быть завершён '\0'.
Эта функция была представлена в Qt 4.2.
См. также toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() и fromStdU32String().
[static] QString QString::fromUcs4(const char32_t *str, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникод-строки str (в кодировке ISO-10646-UCS-4).
Если size равно -1 (по умолчанию), str должен быть завершён '\0'.
Эта функция была представлена в Qt 5.3.
См. также toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() и fromStdU32String().
[static] QString QString::fromUtf8(const char *str, int size = -1)
Возвращает QString, инициализированную первыми size байтами UTF-8 строки str.
Если size равно -1 (по умолчанию), оно принимается равным strlen(str).
UTF-8 — это кодек Юникода и может представлять все символы в строке Юникода, такой как QString. Однако с UTF-8 возможны недопустимые последовательности, и, если такие обнаружены, они будут заменены одним или несколькими «символами замены» или подавлены. К ним относятся не-Юникод последовательности, не-символы, избыточные последовательности или суррогатные коды, закодированные в UTF-8.
Эта функция может использоваться для обработки поступающих данных по частям, при условии, что все UTF-8 символы завершены в поступающих данных. Любые незавершенные символы в конце строки будут заменены или подавлены. Для выполнения состоятельного декодирования используйте QTextDecoder.
См. также toUtf8(), fromLatin1() и fromLocal8Bit().
[static] QString QString::fromUtf8(const QByteArray &str)
Это перегруженный функцией.
Возвращает QString, инициализированную UTF-8 строкой str.
Эта функция была представлена в Qt 5.0.
[static] QString QString::fromUtf16(const ushort *unicode, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникод-строки unicode (в кодировке ISO-10646-UTF-16).
Если size равно -1 (по умолчанию), unicode должен быть завершён '\0'.
Функция проверяет наличие маркера порядка байтов (BOM). Если он отсутствует, предполагается порядок байтов хоста.
Эта функция медленная по сравнению с другими преобразованиями Юникода. Используйте QString(const QChar *, int) или QString(const QChar *) если возможно.
QString делает глубокую копию данных Юникода.
См. также utf16(), setUtf16() и fromStdU16String().
[static] QString QString::fromUtf16(const char16_t *str, int size = -1)
Возвращает QString, инициализированную первыми size символами Юникод-строки str (в кодировке ISO-10646-UTF-16).
Если size равно -1 (по умолчанию), str должен быть завершён '\0'.
Функция проверяет наличие маркера порядка байтов (BOM). Если он отсутствует, предполагается порядок байтов хоста.
Эта функция медленная по сравнению с другими преобразованиями Юникода. Используйте QString(const QChar *, int) или QString(const QChar *) если возможно.
QString делает глубокую копию данных Юникода.
Эта функция была представлена в Qt 5.3.
См. также utf16(), setUtf16() и fromStdU16String().
[static] QString QString::fromWCharArray(const wchar_t *string, int size = -1)
Возвращает копию string, где кодировка string зависит от размера wchar. Если wchar имеет 4 байта, string интерпретируется как UCS-4, если 2 байта — как UTF-16.
Если size равно -1 (по умолчанию), string должен быть завершён '\0'.
Эта функция была представлена в Qt 4.2.
См. также fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4() и fromStdWString().
QChar QString::front() const
Возвращает первый символ в строке. То же, что и at(0).
Эта функция предоставлена для совместимости со STL.
Предупреждение: Вызов этой функции для пустой строки приводит к неопределенному поведению.
Эта функция была добавлена в Qt 5.10.
См. также back(), at() и operator[]().
QCharRef QString::front()
Возвращает ссылку на первый символ в строке. То же, что и operator[](0).
Эта функция предоставлена для совместимости со STL.
Предупреждение: Вызов этой функции для пустой строки приводит к неопределенному поведению.
Эта функция была добавлена в Qt 5.10.
См. также back(), at() и operator[]().
int QString::indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс первого вхождения строки str в этой строке, выполняя поиск вперед с индекса from. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Пример:
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
Если from равно -1, поиск начинается с последнего символа; если -2, со второго с конца и так далее.
Эта функция была добавлена в Qt 4.5.
См. также lastIndexOf(), contains() и count().
int QString::indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает indexOf().
Возвращает индекс первого вхождения символа ch в строке, выполняя поиск вперед с индекса from. Возвращает -1, если ch не найдено.
int QString::indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс первого вхождения строки str в этой строке, выполняя поиск вперед с индекса from. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Пример:
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
Если from равно -1, поиск начинается с последнего символа; если -2, со второго с конца и так далее.
См. также lastIndexOf(), contains() и count().
int QString::indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает indexOf().
Возвращает индекс первого вхождения ссылки на строку str в этой строке, выполняя поиск вперед с индекса from. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Эта функция была добавлена в Qt 4.8.
int QString::indexOf(QStringView str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает indexOf().
Возвращает индекс первого вхождения представления строки str в этой строке, выполняя поиск вперед с индекса from. Возвращает -1, если str не найдена.
Если from равно -1, поиск начинается с последнего символа; если -2, со второго с конца и так далее.
Эта функция была добавлена в Qt 5.14.
См. также QStringView::indexOf(), lastIndexOf(), contains() и count().
int QString::indexOf(const QRegExp &rx, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого соответствия регулярному выражению rx в строке, выполняя поиск вперед с индекса from. Возвращает -1, если rx не соответствует нигде.
Пример:
QString str = "the minimum";
str.indexOf(QRegExp("m[aeiou]"), 0); // returns 4 int QString::indexOf(QRegExp &rx, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого соответствия регулярному выражению rx в строке, выполняя поиск вперед с индекса from. Возвращает -1, если rx не соответствует нигде.
Если соответствие найдено, регулярное выражение rx будет содержать сопоставленные захваты (см. QRegExp::matchedLength, QRegExp::cap).
Пример:
QString str = "the minimum";
str.indexOf(QRegExp("m[aeiou]"), 0); // returns 4 Эта функция была добавлена в Qt 4.5.
int QString::indexOf(const QRegularExpression &re, int from = 0) const
Эта функция перегружает indexOf().
Возвращает индекс первого соответствия регулярному выражению re в строке, выполняя поиск вперед с индекса from. Возвращает -1, если re не соответствует нигде.
Пример:
QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0); // returns 4 Эта функция была добавлена в Qt 5.0.
int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
Это перегруженная функция.
Возвращает индекс первого соответствия регулярному выражению re в строке, выполняя поиск вперед с индекса from. Возвращает -1, если re не соответствует нигде.
Если соответствие успешно и rmatch не nullptr, оно также записывает результаты соответствия в объект QRegularExpressionMatch, на который указывает rmatch.
Пример:
QString str = "the minimum";
QRegularExpressionMatch match;
str.indexOf(QRegularExpression("m[aeiou]"), 0, &match); // returns 4
// match.captured() == mi Эта функция была добавлена в Qt 5.5.
QString &QString::insert(int position, const QString &str)
Вставляет строку str в заданную позицию position и возвращает ссылку на эту строку.
Пример:
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal" Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
См. также append(), prepend(), replace() и remove().
QString &QString::insert(int position, QChar ch)
Эта функция перегружает insert().
Вставляет ch в заданную позицию position в строке.
QString &QString::insert(int position, const QChar *unicode, int size)
Эта функция перегружает insert().
Вставляет первые size символов массива QChar unicode в заданную позицию position в строке.
QString &QString::insert(int position, const QStringRef &str)
Эта функция перегружает insert().
Вставляет ссылку на строку str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Эта функция была добавлена в Qt 5.5.
QString &QString::insert(int position, QLatin1String str)
Эта функция перегружает insert().
Вставляет строку Latin-1 str в заданную позицию position.
QString &QString::insert(int position, const char *str)
Эта функция перегружает insert().
Вставляет строку C str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Эта функция недоступна, когда QT_NO_CAST_FROM_ASCII определена.
Эта функция была добавлена в Qt 5.5.
См. также QT_NO_CAST_FROM_ASCII.
END_OF_DOCUMENT_MARKER ```QString &QString::insert(int position, const QByteArray &str)
Эта функция перегружает insert().
Вставляет байтовый массив str в заданную позицию position и возвращает ссылку на эту строку.
Если заданная position больше, чем size(), массив сначала расширяется с помощью resize().
Эта функция недоступна, когда QT_NO_CAST_FROM_ASCII определено.
Эта функция была добавлена в Qt 5.5.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::isEmpty() const
Возвращает true если строка не содержит символов; в противном случае возвращает false.
Пример:
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
QString("abc").isEmpty(); // returns false См. также size().
bool QString::isLower() const
Возвращает true если строка в нижнем регистре, то есть она идентична результату преобразования в нижний регистр с помощью toLower().
Обратите внимание, что это не означает, что строка не содержит заглавных букв (некоторые заглавные буквы не имеют нижнего регистра; они остаются неизменными при преобразовании в нижний регистр с помощью toLower()). Для получения дополнительной информации обратитесь к стандарту Юникод, раздел 3.13.
Эта функция была добавлена в Qt 5.12.
См. также QChar::toLower() и isUpper().
bool QString::isNull() const
Возвращает true если эта строка равна null; в противном случае возвращает false.
Пример:
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns false Qt различает нулевые строки и пустые строки по историческим причинам. Для большинства приложений важно, содержит ли строка данные, и это можно определить с помощью функции isEmpty().
См. также isEmpty().
bool QString::isRightToLeft() const
Возвращает true если строка читается справа налево.
См. также QStringRef::isRightToLeft().
bool QString::isUpper() const
Возвращает true если строка в верхнем регистре, то есть она идентична результату преобразования в верхний регистр с помощью toUpper().
Обратите внимание, что это не означает, что строка не содержит строчных букв (некоторые строчные буквы не имеют верхнего регистра; они остаются неизменными при преобразовании в верхний регистр с помощью toUpper()). Для получения дополнительной информации обратитесь к стандарту Юникод, раздел 3.13.
Эта функция была добавлена в Qt 5.12.
См. также QChar::toUpper() и isLower().
bool QString::isValidUtf16() const
Возвращает true если строка содержит данные, закодированные в UTF-16; в противном случае возвращает false.
Обратите внимание, что эта функция не выполняет специальную валидацию данных; она просто проверяет, можно ли успешно декодировать их из UTF-16. Предполагается, что данные находятся в порядке байтов хоста; наличие BOM не имеет значения.
Эта функция была добавлена в Qt 5.15.
См. также QStringView::isValidUtf16().
int QString::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает индекс последнего вхождения строки str в эту строку, ищущей назад от индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Пример:
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
См. также indexOf(), contains() и count().
int QString::lastIndexOf(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения символа ch, ищущего назад от позиции from.
int QString::lastIndexOf(QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения строки str в эту строку, ищущей назад от индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Пример:
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
Эта функция была добавлена в Qt 4.5.
См. также indexOf(), contains() и count().
int QString::lastIndexOf(const QStringRef &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения ссылки на строку str в эту строку, ищущей назад от индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Эта функция была добавлена в Qt 4.8.
См. также indexOf(), contains() и count().
int QString::lastIndexOf(QStringView str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последнего вхождения представления строки str в эту строку, ищущей назад от индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если str не найдена.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае — регистронезависимый.
Эта функция была добавлена в Qt 5.14.
См. также indexOf(), contains() и count().
int QString::lastIndexOf(const QRegExp &rx, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последней совпавшей подстроки регулярного выражения rx в строке, ищущей назад от индекса from. Возвращает -1, если rx не совпало нигде.
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegExp("m[aeiou]")); // returns 8 int QString::lastIndexOf(QRegExp &rx, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последней совпавшей подстроки регулярного выражения rx в строке, ищущей назад от индекса from. Возвращает -1, если rx не совпало нигде.
Если совпадение найдено, регулярное выражение rx будет содержать совпавшие группы (см. QRegExp::matchedLength, QRegExp::cap).
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegExp("m[aeiou]")); // returns 8 Эта функция была добавлена в Qt 4.5.
int QString::lastIndexOf(const QRegularExpression &re, int from = -1) const
Эта функция перегружает lastIndexOf().
Возвращает индекс последней совпавшей подстроки регулярного выражения re в строке, начинающейся перед индексом from. Возвращает -1, если re не совпало нигде.
Пример:
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8 Эта функция была добавлена в Qt 5.0.
int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
Это перегруженная функция.
Возвращает индекс последней совпавшей подстроки регулярного выражения re в строке, начинающейся перед индексом from. Возвращает -1, если re не совпало нигде.
Если совпадение найдено и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, указанный rmatch.
Пример:
QString str = "the minimum";
QRegularExpressionMatch match;
str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
// match.captured() == mu Эта функция была добавлена в Qt 5.5.
END_OF_DOCUMENT_MARKERQString QString::left(int n) const
Возвращает подстроку, содержащую n левых символов строки.
Возвращается вся строка, если n больше или равно size(), или меньше нуля.
QString x = "Pineapple"; QString y = x.left(4); // y == "Pine"
См. также right(), mid(), startsWith(), chopped(), chop(), и truncate().
QString QString::leftJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const
Возвращает строку размером width, содержащую эту строку, дополненную символом fill.
Если truncate равно false и размер строки больше width, то возвращаемая строка — копия исходной строки.
QString s = "apple"; QString t = s.leftJustified(8, '.'); // t == "apple..."
Если truncate равно true и размер строки больше width, то все символы в копии строки после позиции width удаляются, и возвращается копия.
QString str = "Pineapple"; str = str.leftJustified(5, '.', true); // str == "Pinea"
См. также rightJustified().
QStringRef QString::leftRef(int n) const
Возвращает ссылку на подстроку, содержащую n левых символов строки.
Если n больше или равно size(), или меньше нуля, возвращается ссылка на всю строку.
QString x = "Pineapple"; QStringRef y = x.leftRef(4); // y == "Pine"
Эта функция была добавлена в Qt 4.4.
См. также left(), rightRef(), midRef(), и startsWith().
int QString::length() const
Возвращает количество символов в этой строке. Эквивалентно size().
См. также resize().
[static] int QString::localeAwareCompare(const QString &s1, const QString &s2)
Сравнивает s1 с s2 и возвращает целое число меньше, равно или больше нуля, если s1 меньше, равно или больше s2 соответственно.
Сравнение выполняется с учетом локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
См. также compare(), QLocale и Сравнение строк.
int QString::localeAwareCompare(const QString &other) const
Эта функция перегружает localeAwareCompare().
Сравнивает эту строку с other и возвращает целое число меньше, равно или больше нуля, если эта строка меньше, равно или больше other соответственно.
Сравнение выполняется с учетом локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
То же, что и localeAwareCompare(*this, other).
См. также Сравнение строк.
int QString::localeAwareCompare(const QStringRef &other) const
Эта функция перегружает localeAwareCompare().
Сравнивает эту строку с other и возвращает целое число меньше, равно или больше нуля, если эта строка меньше, равно или больше other соответственно.
Сравнение выполняется с учетом локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
То же, что и localeAwareCompare(*this, other).
Эта функция была добавлена в Qt 4.5.
См. также Сравнение строк.
[static] int QString::localeAwareCompare(const QString &s1, const QStringRef &s2)
Эта функция перегружает localeAwareCompare().
Сравнивает s1 с s2 и возвращает целое число меньше, равно или больше нуля, если s1 меньше, равно или больше s2 соответственно.
Сравнение выполняется с учетом локали и платформы. Используйте эту функцию для отображения отсортированных списков строк пользователю.
Эта функция была добавлена в Qt 4.5.
См. также Сравнение строк.
QString QString::mid(int position, int n = -1) const
Возвращает подстроку, содержащую n символов этой строки, начиная с указанного индекса position.
Возвращает пустую строку, если индекс position превышает длину строки. Если доступно меньше n символов в строке, начиная с заданного position, или если n равно -1 (по умолчанию), функция возвращает все доступные символы с заданного position.
Пример:
QString x = "Nine pineapples"; QString y = x.mid(5, 4); // y == "pine" QString z = x.mid(5); // z == "pineapples"
См. также left(), right(), chopped(), chop(), и truncate().
QStringRef QString::midRef(int position, int n = -1) const
Возвращает ссылку на подстроку, содержащую n символов этой строки, начиная с указанного индекса position.
Возвращает нулевую ссылку, если position превышает длину строки.
Если доступно меньше n символов в строке, начиная с заданного position, или если n равно -1 (по умолчанию), функция возвращает все символы от заданного position.
Пример:
QString x = "Nine pineapples"; QStringRef y = x.midRef(5, 4); // y == "pine" QStringRef z = x.midRef(5); // z == "pineapples"
Эта функция была добавлена в Qt 4.4.
См. также mid(), leftRef(), и rightRef().
QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersion version = QChar::Unicode_Unassigned) const
Возвращает строку в заданном режиме нормализации Unicode, согласно заданной версии стандарта Unicode.
[static] QString QString::number(long n, int base = 10)
Возвращает строку, эквивалентную числу n в указанной системе счисления base.
По умолчанию base равно 10 и должно находиться в диапазоне от 2 до 36. Для систем счисления, отличных от 10, n обрабатывается как целое без знака.
Форматирование всегда использует QLocale::C, т.е. английский/США. Для получения локализованного представления числа используйте QLocale::toString() с соответствующей локалью.
long a = 63; QString s = QString::number(a, 16); // s == "3f" QString t = QString::number(a, 16).toUpper(); // t == "3F"
См. также setNum().
[static] QString QString::number(int n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(uint n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(ulong n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(qlonglong n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(qulonglong n, int base = 10)
Это перегруженная функция.
[static] QString QString::number(double n, char format = 'g', int precision = 6)
Возвращает строку, эквивалентную числу n, отформатированную в соответствии с заданным format и precision. См. Форматы аргументов для получения более подробной информации.
В отличие от QLocale::toString(), эта функция не учитывает настройки локали пользователя.
См. также setNum() и QLocale::toString().
QString &QString::prepend(const QString &str)
Добавляет строку str в начало этой строки и возвращает ссылку на эту строку.
Пример:
QString x = "ship"; QString y = "air"; x.prepend(y); // x == "airship"
См. также append() и insert().
QString &QString::prepend(QChar ch)
Эта функция перегружает prepend().
Добавляет символ ch в начало этой строки.
QString &QString::prepend(const QChar *str, int len)
Эта функция перегружает prepend().
Добавляет len символов из массива QChar str в начало этой строки и возвращает ссылку на эту строку.
Эта функция была добавлена в Qt 5.5.
QString &QString::prepend(const QStringRef &str)
Эта функция перегружает prepend().
Добавляет ссылку на строку str в начало этой строки и возвращает ссылку на эту строку.
Эта функция была добавлена в Qt 5.5.
QString &QString::prepend(QLatin1String str)
Эта функция перегружает prepend().
Добавляет строку Latin-1 str в начало этой строки.
QString &QString::prepend(const char *str)
Эта функция перегружает prepend().
Добавляет строку str в начало этой строки. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::prepend(const QByteArray &ba)
Эта функция перегружает prepend().
Добавляет массив байтов ba в начало этой строки. Массив байтов преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
void QString::push_back(const QString &other)
Эта функция предоставлена для совместимости со STL, добавляя заданную строку other в конец этой строки. Она эквивалентна append(other).
См. также append().
void QString::push_back(QChar ch)
Это перегруженная функция.
Добавляет символ ch в конец этой строки.
void QString::push_front(const QString &other)
Эта функция предоставлена для совместимости со STL, добавляя заданную строку other в начало этой строки. Она эквивалентна prepend(other).
См. также prepend().
void QString::push_front(QChar ch)
Это перегруженная функция.
Добавляет символ ch в начало этой строки.
QString::reverse_iterator QString::rbegin()
Возвращает обратный итератор STL, указывающий на первый символ в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также begin(), crbegin(), и rend().
QString::const_reverse_iterator QString::rbegin() const
Это перегруженная функция.
Эта функция была добавлена в Qt 5.6.
QString &QString::remove(int position, int n)
Удаляет n символов из строки, начиная с заданного индекса position, и возвращает ссылку на строку.
Если указанный индекс position находится внутри строки, но position + n выходит за пределы строки, строка обрезается до указанного индекса position.
QString s = "Montreal"; s.remove(1, 4); // s == "Meal"
См. также insert() и replace().
QString &QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Удаляет все вхождения символа ch в этой строке и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае поиск регистронезависимый.
Пример:
QString t = "Ali Baba";
t.remove(QChar('a'), Qt::CaseInsensitive);
// t == "li Bb" Это то же самое, что replace(ch, "", cs).
См. также replace().
QString &QString::remove(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Это перегруженная функция.
Удаляет все вхождения заданной строки str в этой строке и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае поиск регистронезависимый.
Это то же самое, что replace(str, "", cs).
Эта функция была добавлена в Qt 5.11.
См. также replace().
QString &QString::remove(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Удаляет все вхождения заданной строки str в этой строке и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск регистрозависимый; в противном случае поиск регистронезависимый.
Это то же самое, что replace(str, "", cs).
См. также replace().
QString &QString::remove(const QRegExp &rx)
Удаляет все вхождения регулярного выражения rx в строке и возвращает ссылку на строку. Например:
QString r = "Telephone";
r.remove(QRegExp("[aeiou]."));
// r == "The" См. также indexOf(), lastIndexOf(), и replace().
QString &QString::remove(const QRegularExpression &re)
Удаляет все вхождения регулярного выражения re в строке и возвращает ссылку на строку. Например:
QString r = "Telephone";
r.remove(QRegularExpression("[aeiou]."));
// r == "The" Эта функция была добавлена в Qt 5.0.
См. также indexOf(), lastIndexOf(), и replace().
QString::reverse_iterator QString::rend()
Возвращает обратный итератор STL, указывающий на позицию после последнего символа в строке в обратном порядке.
Эта функция была добавлена в Qt 5.6.
См. также end(), crend(), и rbegin().
QString::const_reverse_iterator QString::rend() const
Это перегруженная функция.
Эта функция была добавлена в Qt 5.6.
QString QString::repeated(int times) const
Возвращает копию этой строки, повторенную указанное количество times раз.
Если times меньше 1, возвращается пустая строка.
Пример:
QString str("ab");
str.repeated(4); // returns "abababab" Эта функция была добавлена в Qt 4.5.
QString &QString::replace(int position, int n, const QString &after)
Заменяет n символов, начиная с индекса position, строкой after и возвращает ссылку на эту строку.
Примечание: Если указанный индекс position находится внутри строки, но position + n выходит за пределы диапазона строки, то n будет скорректирован, чтобы остановиться в конце строки.
Пример:
QString x = "Say yes!"; QString y = "no"; x.replace(4, 3, y); // x == "Say no!"
См. также insert() и remove().
QString &QString::replace(int position, int n, QChar after)
Эта функция перегружает replace().
Заменяет n символов, начиная с индекса position, на символ after и возвращает ссылку на эту строку.
QString &QString::replace(int position, int n, const QChar *unicode, int size)
Эта функция перегружает replace().
Заменяет n символов, начиная с индекса position, на первые size символов массива QChar unicode и возвращает ссылку на эту строку.
QString &QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение символа before на символ after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
QString &QString::replace(const QChar *before, int blen, const QChar *after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение в этой строке первых blen символов из before на первые alen символов из after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Эта функция была добавлена в Qt 4.5.
QString &QString::replace(QLatin1String before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение строки before на строку after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Примечание: Текст не пересканируется после замены.
Эта функция была добавлена в Qt 4.5.
QString &QString::replace(QLatin1String before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение строки before на строку after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Примечание: Текст не пересканируется после замены.
Эта функция была добавлена в Qt 4.5.
QString &QString::replace(const QString &before, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение строки before на строку after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Примечание: Текст не пересканируется после замены.
Эта функция была добавлена в Qt 4.5.
QString &QString::replace(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение строки before на строку after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Пример:
QString str = "colour behaviour flavour neighbour";
str.replace(QString("ou"), QString("o"));
// str == "color behavior flavor neighbor" Примечание: Текст замены не пересканируется после его вставки.
Пример:
QString equis = "xxxxxx";
equis.replace("xx", "x");
// equis == "xxx" QString &QString::replace(QChar ch, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение символа ch в строке на after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
QString &QString::replace(QChar c, QLatin1String after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Эта функция перегружает replace().
Заменяет каждое вхождение символа c на строку after и возвращает ссылку на эту строку.
Если cs равно Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.
Примечание: Текст не пересканируется после замены.
Эта функция была добавлена в Qt 4.5.
QString &QString::replace(const QRegExp &rx, const QString &after)
Эта функция перегружает replace().
Заменяет каждое вхождение регулярного выражения rx в строке на after. Возвращает ссылку на строку. Например:
QString s = "Banana";
s.replace(QRegExp("a[mn]"), "ox");
// s == "Boxoxa" Для регулярных выражений, содержащих захватывающие скобки, вхождения \1, \2, ... в after заменяются на rx.cap(1), cap(2), ...
QString t = "A <i>bon mot</i>.";
t.replace(QRegExp("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}." См. также indexOf(), lastIndexOf(), remove() и QRegExp::cap().
QString &QString::replace(const QRegularExpression &re, const QString &after)
Эта функция перегружает replace().
Заменяет каждое вхождение регулярного выражения re в строке на after. Возвращает ссылку на строку. Например:
QString s = "Banana";
s.replace(QRegularExpression("a[mn]"), "ox");
// s == "Boxoxa" Для регулярных выражений, содержащих захватывающие группы, вхождения \1, \2, ... в after заменяются на строку, захваченную соответствующей захватывающей группой.
QString t = "A <i>bon mot</i>.";
t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
// t == "A \\emph{bon mot}." Эта функция была добавлена в Qt 5.0.
См. также indexOf(), lastIndexOf(), remove(), QRegularExpression и QRegularExpressionMatch.
void QString::reserve(int size)
Попытка выделить память для как минимум size символов. Если заранее известно, какой будет размер строки, можно вызвать эту функцию, и при частой смене размера строки это может улучшить производительность. Если size является недооценкой, худшее, что произойдёт, — QString будет немного медленнее.
Единственная цель этой функции — обеспечить способ тонкой настройки использования памяти QString. Как правило, вам редко придётся вызывать эту функцию. Если вы хотите изменить размер строки, вызовите resize().
Эта функция полезна для кода, которому необходимо построить длинную строку и избежать многократного перераспределения памяти. В этом примере мы хотим добавлять в строку до тех пор, пока не будет выполнено некоторое условие true, и мы довольно уверены, что размер достаточно велик, чтобы вызов reserve() стоил усилий:
QString result;
int maxSize;
bool condition;
QChar nextChar;
result.reserve(maxSize);
while (condition)
result.append(nextChar);
result.squeeze(); См. также squeeze() и capacity().
void QString::resize(int size)
Устанавливает размер строки в size символов.
Если size больше текущего размера, строка расширяется до size символов, при этом новые символы добавляются в конец. Новые символы не инициализированы.
Если size меньше текущего размера, символы удаляются с конца.
Пример:
QString s = "Hello world"; s.resize(5); // s == "Hello" s.resize(8); // s == "Hello???" (where ? stands for any character)
Если вы хотите добавить определённое количество одинаковых символов в конец строки, используйте перегрузку resize(int, QChar).
Если вы хотите расширить строку до определённой ширины и заполнить новые позиции определённым символом, используйте функцию leftJustified():
Если size отрицательное, это эквивалентно передаче нуля.
QString r = "Hello"; r = r.leftJustified(10, ' '); // r == "Hello "
См. также truncate() и reserve().
void QString::resize(int size, QChar fillChar)
Это перегруженный метод.
В отличие от resize(int), эта перегрузка инициализирует новые символы значением fillChar:
QString t = "Hello"; r.resize(t.size() + 10, 'X'); // t == "HelloXXXXXXXXXX"
Этот метод был добавлен в Qt 5.7.
QString QString::right(int n) const
Возвращает подстроку, содержащую n правых символов строки.
Возвращает всю строку, если n больше или равно size(), или меньше нуля.
QString x = "Pineapple"; QString y = x.right(5); // y == "apple"
См. также left(), mid(), endsWith(), chopped(), chop() и truncate().
QString QString::rightJustified(int width, QChar fill = QLatin1Char(' '), bool truncate = false) const
Возвращает строку длиной width, содержащую символ fill, за которым следует исходная строка. Например:
QString s = "apple"; QString t = s.rightJustified(8, '.'); // t == "...apple"
Если truncate равно false и длина исходной строки больше width, то возвращается копия исходной строки.
Если truncate равно true и длина исходной строки больше width, то возвращаемая строка усекается до позиции width.
QString str = "Pineapple"; str = str.rightJustified(5, '.', true); // str == "Pinea"
См. также leftJustified().
QStringRef QString::rightRef(int n) const
Возвращает ссылку на подстроку, содержащую n правых символов строки.
Если n больше или равно size(), или меньше нуля, возвращается ссылка на всю строку.
QString x = "Pineapple"; QStringRef y = x.rightRef(5); // y == "apple"
Этот метод был добавлен в Qt 4.4.
См. также right(), leftRef(), midRef() и endsWith().
QString QString::section(QChar sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
Этот метод возвращает фрагмент строки.
Строка рассматривается как последовательность полей, разделённых символом sep. Возвращаемая строка состоит из полей с позиций start до end включительно. Если end не указан, включаются все поля с позиции start до конца строки. Поля нумеруются с 0, 1, 2 и т. д., считая слева, и -1, -2 и т. д., считая справа налево.
Аргумент flags может влиять на некоторые аспекты поведения метода, например, чувствительность к регистру, пропускание пустых полей и обработку начальных и конечных разделителей; см. 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" Если start или end отрицательны, поля считаются справа от строки, самое правое поле — -1, следующее — -2 и так далее.
str = csv.section(',', -3, -2); // str == "middlename,surname"
str = path.section('/', -1); // str == "myapp" См. также split().
QString QString::section(const QString &sep, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
Этот метод перегружает метод section().
QString str;
QString data = "forename**middlename**surname**phone";
str = data.section("**", 2, 2); // str == "surname"
str = data.section("**", -3, -2); // str == "middlename**surname" См. также split().
QString QString::section(const QRegExp ®, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
Этот метод перегружает метод section().
Эта строка обрабатывается как последовательность полей, разделённых регулярным выражением reg.
QString line = "forename\tmiddlename surname \t \t phone";
QRegExp sep("\\s+");
str = line.section(sep, 2, 2); // str == "surname"
str = line.section(sep, -3, -2); // str == "middlename surname" Предупреждение: Использование этой версии с QRegExp значительно медленнее, чем перегруженные версии для строк и символов.
См. также split() и simplified().
QString QString::section(const QRegularExpression &re, int start, int end = -1, QString::SectionFlags flags = SectionDefault) const
Этот метод перегружает метод section().
Эта строка обрабатывается как последовательность полей, разделённых регулярным выражением 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" Предупреждение: Использование этой версии с QRegularExpression значительно медленнее, чем перегруженные версии для строк и символов.
Этот метод был добавлен в Qt 5.0.
См. также split() и simplified().
QString &QString::setNum(int n, int base = 10)
Устанавливает строку в значение n, выведенное в указанной base, и возвращает ссылку на строку.
По умолчанию основание равно 10, и должно быть в диапазоне от 2 до 36. Для оснований, отличных от 10, n рассматривается как целое без знака.
QString str; str.setNum(1234); // str == "1234"
Форматирование всегда использует QLocale::C, т. е. английский/США. Для получения локального представления числа используйте QLocale::toString() с соответствующей локалью.
См. также number().
QString &QString::setNum(short n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(ushort n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(uint n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(long n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(ulong n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(qlonglong n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(qulonglong n, int base = 10)
Это перегруженный метод.
QString &QString::setNum(float n, char format = 'g', int precision = 6)
Это перегруженный метод.
Устанавливает строку в значение n, отформатированное в соответствии с format и precision, и возвращает ссылку на строку.
Форматирование всегда использует QLocale::C, т. е. английский/США. Для получения локального представления числа используйте QLocale::toString() с соответствующей локалью.
См. также number().
QString &QString::setNum(double n, char format = 'g', int precision = 6)
Это перегруженный метод.
Устанавливает строку в значение n, отформатированное в соответствии с format и precision, и возвращает ссылку на строку.
format может быть 'e', 'E', 'f', 'g' или 'G' (см. Форматы аргументов для объяснения форматов).
Форматирование всегда использует QLocale::C, т. е. английский/США. Для получения локального представления числа используйте QLocale::toString() с соответствующей локалью.
См. также number().
QString &QString::setRawData(const QChar *unicode, int size)
Сбрасывает QString для использования первых size символов Юникода в массиве unicode. Данные в unicode не копируются. Вызывающий метод должен гарантировать, что unicode не будет удален или изменён, пока существует QString (или неизменная копия).
Эту функцию можно использовать вместо fromRawData() для повторного использования существующих объектов QString с целью экономии памяти, предотвращая повторные выделения.
Функция была добавлена в Qt 4.7.
См. также fromRawData().
QString &QString::setUnicode(const QChar *unicode, int size)
Изменяет размер строки на size символов и копирует unicode в строку.
Если unicode равен 0, ничего не копируется, но размер строки всё равно изменяется на size.
См. также unicode() и setUtf16().
QString &QString::setUtf16(const ushort *unicode, int size)
Изменяет размер строки на size символов и копирует unicode в строку.
Если unicode равен 0, ничего не копируется, но размер строки всё равно изменяется на size.
Обратите внимание, что в отличие от fromUtf16(), эта функция не учитывает BOM и, возможно, разную кодировку байтов.
См. также utf16() и setUnicode().
void QString::shrink_to_fit()
Эта функция предоставляется для совместимости со STL. Она эквивалентна squeeze().
Функция была добавлена в Qt 5.10.
См. также squeeze().
QString QString::simplified() const
Возвращает строку, из которой удалены начальные и конечные пробелы, а последовательности внутренних пробелов заменены на один пробел.
Пробелы означают любой символ, для которого QChar::isSpace() возвращает true. Это включает в себя ASCII-символы '\t', '\n', '\v', '\f', '\r' и ' '.
Пример:
QString str = " lots\t of\nwhitespace\r\n "; str = str.simplified(); // str == "lots of whitespace";
См. также trimmed().
int QString::size() const
Возвращает количество символов в этой строке.
Последний символ в строке находится на позиции size() - 1.
Пример:
QString str = "World"; int n = str.size(); // n == 5 str.data()[0]; // returns 'W' str.data()[4]; // returns 'd'
См. также isEmpty() и resize().
QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Разделяет строку на подстроки там, где встречается sep, и возвращает список этих строк. Если sep нигде не совпадает в строке, split() возвращает список, содержащий только эту строку.
cs указывает, следует ли подстроке sep соответствовать регистрозависимо или регистронезависимо.
Если behavior равен QString::SkipEmptyParts, пустые записи не появляются в результате. По умолчанию пустые записи сохраняются.
Пример:
QString str = QStringLiteral("a,,b,c");
QStringList list1 = str.split(QLatin1Char(','));
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ] Если sep пустая, split() возвращает пустую строку, за которой следуют каждый символ строки, за которым следует ещё одна пустая строка:
QString str = "abc";
auto parts = str.split(QString());
// parts: {"", "a", "b", "c", ""} Чтобы понять это поведение, вспомните, что пустая строка соответствует везде, поэтому выше приведенное качественно то же самое, что и:
QString str = "/a/b/c/";
auto parts = str.split(QLatin1Char('/'));
// parts: {"", "a", "b", "c", ""} Функция была добавлена в Qt 5.14.
См. также QStringList::join() и section().
QStringList QString::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
Функция была добавлена в Qt 5.14.
QStringList QString::split(const QRegExp &rx, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
Это перегруженная функция.
Разделяет строку на подстроки в местах, где совпадает регулярное выражение rx, и возвращает список этих строк. Если rx нигде не совпадает в строке, split() возвращает список, содержащий только эту строку.
Вот пример, где мы извлекаем слова в предложении, используя один или несколько символов пробела в качестве разделителя:
QString str;
QStringList list;
str = "Some text\n\twith strange whitespace.";
list = str.split(QRegExp("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ] Вот похожий пример, но в этот раз мы используем любую последовательность небуквенных символов в качестве разделителя:
str = "This time, a normal English sentence.";
list = str.split(QRegExp("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ] Вот третий пример, где мы используем утверждение нулевой длины, \b (граница слова), чтобы разделить строку на чередующуюся последовательность небуквенных и буквенных токенов:
str = "Now: this sentence fragment.";
list = str.split(QRegExp("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ] Функция была добавлена в Qt 5.14.
См. также QStringList::join() и section().
QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
Это перегруженная функция.
Разделяет строку на подстроки в местах, где совпадает регулярное выражение re, и возвращает список этих строк. Если re нигде не совпадает в строке, split() возвращает список, содержащий только эту строку.
Вот пример, где мы извлекаем слова в предложении, используя один или несколько символов пробела в качестве разделителя:
QString str;
QStringList list;
str = "Some text\n\twith strange whitespace.";
list = str.split(QRegularExpression("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ] Вот похожий пример, но в этот раз мы используем любую последовательность небуквенных символов в качестве разделителя:
str = "This time, a normal English sentence.";
list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ] Вот третий пример, где мы используем утверждение нулевой длины, \b (граница слова), чтобы разделить строку на чередующуюся последовательность небуквенных и буквенных токенов:
str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ] Функция была добавлена в Qt 5.14.
См. также QStringList::join() и section().
QVector<QStringRef> QString::splitRef(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Разделяет строку на ссылки на подстроки в местах, где встречается sep, и возвращает список этих строк.
См. QString::split(), как взаимодействуют sep, behavior и cs, чтобы сформировать результат.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведёт к тому, что все ссылки станут висячими указателями.
Функция была добавлена в Qt 5.14.
См. также QStringRef и split().
QVector<QStringRef> QString::splitRef(QChar sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
Функция была добавлена в Qt 5.4.
QVector<QStringRef> QString::splitRef(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
Функция была добавлена в Qt 5.14.
QVector<QStringRef> QString::splitRef(const QRegExp &rx, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
Это перегруженная функция.
Разделяет строку на ссылки на подстроки в местах, где совпадает регулярное выражение rx, и возвращает список этих строк. Если rx нигде не совпадает в строке, splitRef() возвращает вектор, содержащий только эту ссылку на строку.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведёт к тому, что все ссылки станут висячими указателями.
Функция была добавлена в Qt 5.14.
См. также QStringRef и split().
QVector<QStringRef> QString::splitRef(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const
Это перегруженная функция.
Разделяет строку на ссылки на подстроки в местах, где совпадает регулярное выражение re, и возвращает список этих строк. Если re нигде не совпадает в строке, splitRef() возвращает вектор, содержащий только эту ссылку на строку.
Примечание: Все ссылки действительны, пока эта строка существует. Уничтожение этой строки приведёт к тому, что все ссылки станут висячими указателями.
См. также split() и QStringRef.
void QString::squeeze()
Освобождает память, не необходимую для хранения данных символов.
Единственная цель этой функции — предоставить способ точной настройки использования памяти QString. В целом, вам редко понадобится вызывать эту функцию.
См. также reserve() и capacity().
bool QString::startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Возвращает true если строка начинается с s; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае — без учета регистра.
QString str = "Bananas";
str.startsWith("Ban"); // returns true
str.startsWith("Car"); // returns false См. также endsWith().
bool QString::startsWith(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
Возвращает true если строка начинается со строковой ссылки s; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае — без учета регистра.
Эта функция была добавлена в Qt 4.8.
См. также endsWith().
bool QString::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Это перегруженная функция.
Возвращает true если строка начинается с представления строки str; в противном случае возвращает false.
Если cs имеет значение Qt::CaseSensitive (по умолчанию), поиск выполняется с учетом регистра; в противном случае — без учета регистра.
Эта функция была добавлена в Qt 5.10.
См. также endsWith().
bool QString::startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает startsWith().
bool QString::startsWith(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Эта функция перегружает startsWith().
Возвращает true если строка начинается с c; в противном случае возвращает false.
void QString::swap(QString &other)
Меняет местами строку other с этой строкой. Эта операция очень быстрая и никогда не терпит неудач.
Эта функция была добавлена в Qt 4.8.
CFStringRef QString::toCFString() const
Создаёт CFString из QString. Вызывающая сторона владеет CFString и отвечает за его освобождение.
Примечание: эта функция доступна только на платформах OS X и iOS.
Эта функция была добавлена в Qt 5.2.
QString QString::toCaseFolded() const
Возвращает эквивалент строки с учётом сложенных регистров. Для большинства символов Юникода это то же самое, что и toLower().
double QString::toDouble(bool *ok = nullptr) const
Возвращает строку, преобразованную в значение типа double.
Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование завершается неудачей по другим причинам (например, при недоливе).
Если ok не nullptr, неудача обозначается установкой *ok в false, а успех — в true.
QString str = "1234.56"; double val = str.toDouble(); // val == 1234.56
Предупреждение: Содержимое QString должно содержать только допустимые числовые символы, включая знак плюс/минус, символ e, используемый в научной записи, и десятичную точку. Включение единицы или дополнительных символов приводит к ошибке преобразования.
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
Преобразование строки всегда выполняется в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toDouble()
d = QString( "1234,56" ).toDouble(&ok); // ok == false d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56
По историческим причинам эта функция не обрабатывает разделители тысяч. Если вам нужно преобразовать такие числа, используйте QLocale::toDouble().
d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false d = QString( "1234567.89" ).toDouble(&ok); // ok == true
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), QLocale::setDefault(), QLocale::toDouble(), и trimmed().
float QString::toFloat(bool *ok = nullptr) const
Возвращает строку, преобразованную в значение типа float.
Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование завершается неудачей по другим причинам (например, при недоливе).
Если ok не nullptr, неудача обозначается установкой *ok в false, а успех — в true.
Предупреждение: Содержимое QString должно содержать только допустимые числовые символы, включая знак плюс/минус, символ e, используемый в научной записи, и десятичную точку. Включение единицы или дополнительных символов приводит к ошибке преобразования.
Преобразование строки всегда выполняется в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toFloat()
По историческим причинам эта функция не обрабатывает разделители тысяч. Если вам нужно преобразовать такие числа, используйте QLocale::toFloat().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toDouble(), toInt(), QLocale::toFloat(), и trimmed().
QString QString::toHtmlEscaped() const
Преобразует строку простого текста в HTML-строку, заменяя HTML-спецсимволы <, >, &, и " на HTML-сущности.
Пример:
QString plain = "#include <QtCore>" QString html = plain.toHtmlEscaped(); // html == "#include <QtCore>"
Эта функция была добавлена в Qt 5.0.
int QString::toInt(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в целое число типа int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование завершается неудачей.
Если ok не nullptr, неудача обозначается установкой *ok в false, а успех — в true.
Если base равно 0, используется соглашение языка C: если строка начинается с «0x», используется основание 16; если строка начинается с «0», используется основание 8; в противном случае — основание 10.
Преобразование строки всегда выполняется в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toInt()
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toUInt(), toDouble(), и QLocale::toInt().
QByteArray QString::toLatin1() const
Возвращает представление строки в кодировке Latin-1 в виде QByteArray.
Возвращаемый массив байтов неопределён, если строка содержит не-Latin1 символы. Эти символы могут быть подавлены или заменены вопросительным знаком.
См. также fromLatin1(), toUtf8(), toLocal8Bit(), и QTextCodec.
QByteArray QString::toLocal8Bit() const
Возвращает локальное 8-битное представление строки в виде QByteArray. Возвращаемый массив байтов неопределён, если строка содержит символы, не поддерживаемые локальной 8-битной кодировкой.
QTextCodec::codecForLocale() используется для преобразования из Юникода. Если кодировка локали не может быть определена, эта функция делает то же самое, что и toLatin1().
Если эта строка содержит символы, которые не могут быть закодированы в локальной кодировке, возвращаемый массив байтов неопределён. Эти символы могут быть подавлены или заменены другим.
См. также fromLocal8Bit(), toLatin1(), toUtf8(), и QTextCodec.
long QString::toLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в целое число типа long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование завершается неудачей.
Если ok не nullptr, неудача обозначается установкой *ok в false, а успех — в true.
Если base равно 0, используется соглашение языка C: если строка начинается с «0x», используется основание 16; если строка начинается с «0», используется основание 8; в противном случае — основание 10.
Преобразование строки всегда выполняется в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLongLong()
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toULong(), toInt() и QLocale::toInt().
qlonglong QString::toLongLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLongLong().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toULongLong(), toInt() и QLocale::toLongLong().
QString QString::toLower() const
Возвращает копию строки в нижнем регистре.
QString str = "The Qt PROJECT"; str = str.toLower(); // str == "the qt project"
Преобразование регистра всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLower().
См. также toUpper() и QLocale::toLower().
NSString *QString::toNSString() const
Создает NSString из QString. NSString автоматически освобождается.
Примечание: эта функция доступна только на OS X и iOS.
Эта функция была добавлена в Qt 5.2.
short QString::toShort(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toShort().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toUShort(), toInt() и QLocale::toShort().
std::string QString::toStdString() const
Возвращает объект std::string с данными, содержащимися в этом QString. Данные Юникода преобразуются в 8-битные символы с использованием функции toUtf8().
Этот метод в основном используется для передачи QString функции, принимающей объект std::string.
См. также toLatin1(), toUtf8(), toLocal8Bit() и QByteArray::toStdString().
std::u16string QString::toStdU16String() const
Возвращает объект std::u16string с данными, содержащимися в этом QString. Данные Юникода совпадают с данными, возвращаемыми методом utf16().
Эта функция была добавлена в Qt 5.5.
См. также utf16(), toStdWString() и toStdU32String().
std::u32string QString::toStdU32String() const
Возвращает объект std::u32string с данными, содержащимися в этом QString. Данные Юникода совпадают с данными, возвращаемыми методом toUcs4().
Эта функция была добавлена в Qt 5.5.
См. также toUcs4(), toStdWString() и toStdU16String().
std::wstring QString::toStdWString() const
Возвращает объект std::wstring с данными, содержащимися в этом QString. std::wstring кодируется в utf16 на платформах, где wchar_t имеет ширину 2 байта (например, Windows), и в ucs4 на платформах, где wchar_t имеет ширину 4 байта (большинство Unix-систем).
Этот метод в основном используется для передачи QString функции, принимающей объект std::wstring.
См. также utf16(), toLatin1(), toUtf8(), toLocal8Bit(), toStdU16String() и toStdU32String().
uint QString::toUInt(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUInt().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toInt() и QLocale::toUInt().
ulong QString::toULong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number() и QLocale::toUInt().
qulonglong QString::toULongLong(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toLongLong() и QLocale::toULongLong().
ushort QString::toUShort(bool *ok = nullptr, int base = 10) const
Возвращает строку, преобразованную в unsigned short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36 или 0. Возвращает 0, если преобразование не выполнено.
Если ok не nullptr, ошибка сообщается, установив *ok в false, а успех — установив *ok в true.
Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае — основание 10.
Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUShort().
Пример:
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
Эта функция игнорирует начальные и конечные пробелы.
См. также number(), toShort() и QLocale::toUShort().
QVector<uint> QString::toUcs4() const
Возвращает UCS-4/UTF-32 представление строки в виде QVector<uint>.
UCS-4 — это кодек Юникода, и поэтому он без потерь. Все символы из этой строки будут закодированы в UCS-4. Любая недопустимая последовательность кодовых единиц в этой строке заменяется замещающим символом Юникода (QChar::ReplacementCharacter, что соответствует U+FFFD).
Возвращаемый вектор не завершается символом '\0'.
Эта функция была добавлена в Qt 4.2.
См. также fromUtf8(), toUtf8(), toLatin1(), toLocal8Bit(), QTextCodec, fromUcs4(), и toWCharArray().
QString QString::toUpper() const
Возвращает копию строки в верхнем регистре.
QString str = "TeXt"; str = str.toUpper(); // str == "TEXT"
Преобразование регистра всегда происходит в локали 'C'. Для преобразования регистра, зависящего от локали, используйте QLocale::toUpper().
См. также toLower() и QLocale::toLower().
QByteArray QString::toUtf8() const
Возвращает UTF-8 представление строки в виде QByteArray.
UTF-8 — это кодек Unicode и может представлять все символы в строке Unicode, такой как QString.
См. также fromUtf8(), toLatin1(), toLocal8Bit(), и QTextCodec.
int QString::toWCharArray(wchar_t *array) const
Заполняет array данными, содержащимися в этом объекте QString. Массив кодируется в UTF-16 на платформах, где wchar_t имеет ширину 2 байта (например, Windows), и в UCS-4 на платформах, где wchar_t имеет ширину 4 байта (большинство систем Unix).
array должен быть выделен вызывающей стороной и содержать достаточно места для хранения всей строки (выделение массива с такой же длиной, как у строки, всегда достаточно).
Эта функция возвращает фактическую длину строки в array.
Примечание: Эта функция не добавляет нулевой символ в конец массива.
Эта функция была добавлена в Qt 4.2.
См. также utf16(), toUcs4(), toLatin1(), toUtf8(), toLocal8Bit(), toStdWString(), и QStringView::toWCharArray().
QString QString::trimmed() const
Возвращает строку, из которой удалены пробелы в начале и в конце.
Пробелы — это любые символы, для которых QChar::isSpace() возвращает true. Это включает в себя ASCII-символы '\t', '\n', '\v', '\f', '\r' и ' '.
Пример:
QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); // str == "lots\t of\nwhitespace"
В отличие от simplified(), trimmed() оставляет внутренние пробелы без изменений.
См. также simplified().
void QString::truncate(int position)
Усекает строку на заданный индекс position.
Если указанный индекс position выходит за пределы строки, ничего не происходит.
Пример:
QString str = "Vladivostok"; str.truncate(4); // str == "Vlad"
Если position отрицателен, он эквивалентен нулю.
См. также chop(), resize(), left(), и QStringRef::truncate().
const QChar *QString::unicode() const
Возвращает Unicode представление строки. Результат остается действительным до тех пор, пока строка не будет изменена.
Примечание: Возвращаемая строка может не быть завершенной символом '\0'. Используйте size() для определения длины массива.
См. также setUnicode(), utf16(), и fromRawData().
const ushort *QString::utf16() const
Возвращает QString как завершенную символом '\0' массив беззнаковых коротких целых чисел. Результат остается действительным до тех пор, пока строка не будет изменена.
Возвращаемая строка находится в порядке байтов хоста.
См. также setUtf16() и unicode().
[static] QString QString::vasprintf(const char *cformat, va_list ap)
Эквивалентный метод asprintf(), но принимает va_list ap вместо списка переменных аргументов. См. документацию asprintf() для объяснения cformat.
Этот метод не вызывает макрос va_end, вызывающая сторона отвечает за вызов va_end для ap.
Эта функция была добавлена в Qt 5.5.
См. также asprintf().
bool QString::operator!=(QLatin1String other) const
Возвращает true если эта строка не равна строке параметра other. В противном случае возвращает false.
Эта функция перегружает оператор!=().
bool QString::operator!=(const char *other) const
Эта функция перегружает оператор!=().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator!=(const QByteArray &other) const
Эта функция перегружает оператор!=().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов есть какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::operator+=(QChar ch)
Эта функция перегружает оператор+=().
Добавляет символ ch в конец строки.
QString &QString::operator+=(const QString &other)
Добавляет строку other к концу этой строки и возвращает ссылку на эту строку.
Пример:
QString x = "free"; QString y = "dom"; x += y; // x == "freedom"
Операция обычно очень быстрая (постоянное время), потому что QString предварительно выделяет дополнительное место в конце данных строки, чтобы она могла расти, не перевыделяя всю строку каждый раз.
См. также append() и prepend().
QString &QString::operator+=(const QStringRef &str)
Эта функция перегружает оператор+=().
Добавляет фрагмент строки, на который ссылается str, к этой строке.
QString &QString::operator+=(QLatin1String str)
Эта функция перегружает оператор+=().
Добавляет строку Latin-1 str к этой строке.
QString &QString::operator+=(const char *str)
Эта функция перегружает оператор+=().
Добавляет строку str к этой строке. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::operator+=(const QByteArray &ba)
Эта функция перегружает оператор+=().
Добавляет массив байтов ba к этой строке. Массив байтов преобразуется в Unicode с помощью функции fromUtf8(). Если в массиве байтов ba есть какие-либо нулевые символы ('\0'), они будут включены в преобразование.
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::operator+=(char ch)
Эта функция перегружает оператор+=().
Добавляет символ ch к этой строке. Обратите внимание, что символ преобразуется в Unicode с помощью функции fromLatin1(), в отличие от других функций 8-битного кодирования, которые работают с данными UTF-8.
Вы можете отключить эту функцию, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator<(QLatin1String other) const
Эта функция перегружает оператор<().
Возвращает true если эта строка лексикографически меньше, чем строка-параметр other; в противном случае возвращает false.
bool QString::operator<(const char *other) const
Возвращает true если эта строка лексикографически меньше, чем строка other. В противном случае возвращает false.
Эта функция перегружает оператор<().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator<(const QByteArray &other) const
Эта функция перегружает оператор<().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся символы NULL ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator<=(QLatin1String other) const
Возвращает true если эта строка лексикографически меньше или равна строке-параметру other. В противном случае возвращает false.
Эта функция перегружает оператор<=().
bool QString::operator<=(const char *other) const
Эта функция перегружает оператор<=().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator<=(const QByteArray &other) const
Эта функция перегружает оператор<=().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся символы NULL ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QString &QString::operator=(QChar ch)
Эта функция перегружает оператор=().
Устанавливает строку, содержащую единственный символ ch.
QString &QString::operator=(QLatin1String str)
Эта функция перегружает оператор=().
Присваивает строку Latin-1 str этой строке.
QString &QString::operator=(const char *str)
Эта функция перегружает оператор=().
Присваивает str этой строке. Указатель const char преобразуется в Unicode с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII или QT_RESTRICTED_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII и QT_RESTRICTED_CAST_FROM_ASCII.
QString &QString::operator=(char ch)
Эта функция перегружает оператор=().
Присваивает символ ch этой строке. Обратите внимание, что символ преобразуется в Unicode с помощью функции fromLatin1(), в отличие от других функций с 8-битными данными, работающих с данными UTF-8.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator==(QLatin1String other) const
Эта функция перегружает оператор==().
Возвращает true если эта строка равна other; в противном случае возвращает false.
bool QString::operator==(const char *other) const
Эта функция перегружает оператор==().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator==(const QByteArray &other) const
Эта функция перегружает оператор==().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Функция останавливает преобразование при первом встретившемся символе NULL или в конце массива байтов.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
Возвращает true если эта строка лексикографически равна строке-параметру other. В противном случае возвращает false.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator>(QLatin1String other) const
Эта функция перегружает оператор>().
Возвращает true если эта строка лексикографически больше, чем строка-параметр other; в противном случае возвращает false.
bool QString::operator>(const char *other) const
Эта функция перегружает оператор>().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator>(const QByteArray &other) const
Эта функция перегружает оператор>().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся символы NULL ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator>=(QLatin1String other) const
Возвращает true если эта строка лексикографически больше или равна строке-параметру other. В противном случае возвращает false.
Эта функция перегружает оператор>=().
bool QString::operator>=(const char *other) const
Эта функция перегружает оператор>=().
Указатель other типа const char преобразуется в QString с помощью функции fromUtf8().
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите гарантировать, что все отображаемые пользователю строки проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
bool QString::operator>=(const QByteArray &other) const
Эта функция перегружает оператор>=().
Массив байтов other преобразуется в QString с помощью функции fromUtf8(). Если в массиве байтов содержатся символы NULL ('\0'), они будут включены в преобразование.
Вы можете отключить этот оператор, определив QT_NO_CAST_FROM_ASCII при компиляции ваших приложений. Это может быть полезно, если вы хотите убедиться, что все строки, отображаемые пользователю, проходят через QObject::tr(), например.
См. также QT_NO_CAST_FROM_ASCII.
QCharRef QString::operator[](int position)
Возвращает символ в заданной позиции в строке как изменяемую ссылку.
Пример:
QString str;
if (str[0] == QChar('?'))
str[0] = QChar('_'); Возвращаемое значение имеет тип QCharRef, вспомогательный класс для QString. Когда вы получаете объект типа QCharRef, вы можете использовать его так, как если бы он был ссылкой на QChar. Если вы присваиваете ему значение, присваивание будет применяться к символу в QString, из которого вы получили ссылку.
Примечание: До Qt 5.14 было возможно использовать этот оператор для доступа к символу в позиции за пределами границ строки, а затем присваивать значение такой позиции, что приводило к автоматическому изменению размера строки. Кроме того, присвоение значения возвращаемой QCharRef приводило к отсоединению строки, даже если в это время строка была скопирована (и QCharRef оставалась активной во время копирования). Это поведение устарело и будет изменено в будущей версии Qt.
См. также at().
const QChar QString::operator[](int position) const
Эта функция перегружает operator[]().
const QChar QString::operator[](uint position) const
Эквивалентно at(position).
Эта функция перегружает operator[]().
QCharRef QString::operator[](uint position)
Эта функция перегружает operator[]().
Возвращает символ в заданной позиции в строке как изменяемую ссылку.
Связанные не члены
bool operator!=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 не равна строке s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator!=(const char *s1, const QString &s2)
Возвращает true, если s1 не равен s2; в противном случае возвращает false.
Для s1 != 0, это эквивалентно compare( s1, s2 ) != 0. Обратите внимание, что никакая строка не равна s1, равному 0.
const QString operator+(const QString &s1, const QString &s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2.
const QString operator+(const QString &s1, const char *s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s2 преобразуется в Unicode с помощью функции QString::fromUtf8() ).
См. также QString::fromUtf8().
const QString operator+(const char *s1, const QString &s2)
Возвращает строку, являющуюся результатом конкатенации s1 и s2 (s1 преобразуется в Unicode с помощью функции QString::fromUtf8() ).
См. также QString::fromUtf8().
const QString operator+(char ch, const QString &s)
Возвращает строку, являющуюся результатом конкатенации символа ch и строки s.
const QString operator+(const QString &s, char ch)
Возвращает строку, являющуюся результатом конкатенации строки s и символа ch.
bool operator<(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически меньше строки s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator<(const char *s1, const QString &s2)
Возвращает true, если s1 лексически меньше s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) < 0.
См. также Сравнение строк.
QDataStream &operator<<(QDataStream &stream, const QString &string)
Записывает заданную string в указанный stream.
См. также Сериализация типов данных Qt.
bool operator<=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически меньше или равна строке s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator<=(const char *s1, const QString &s2)
Возвращает true, если s1 лексически меньше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) <= 0.
См. также Сравнение строк.
bool operator==(const QString &s1, const QString &s2)
Возвращает true, если строка s1 равна строке s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator==(const char *s1, const QString &s2)
Эта функция перегружает оператор==().
Возвращает true, если s1 равен s2; в противном случае возвращает false. Обратите внимание, что никакая строка не равна s1, равному 0.
Эквивалентно s1 != 0 && compare(s1, s2) == 0.
bool operator>(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически больше строки s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator>(const char *s1, const QString &s2)
Возвращает true, если s1 лексически больше s2; в противном случае возвращает false. Эквивалентно compare(s1, s2) > 0.
См. также Сравнение строк.
bool operator>=(const QString &s1, const QString &s2)
Возвращает true, если строка s1 лексически больше или равна строке s2; в противном случае возвращает false.
См. также Сравнение строк.
bool operator>=(const char *s1, const QString &s2)
Возвращает true, если s1 лексически больше или равно s2; в противном случае возвращает false. Для s1 != 0, это эквивалентно compare(s1, s2) >= 0.
См. также Сравнение строк.
QDataStream &operator>>(QDataStream &stream, QString &string)
Читает строку из указанного stream в заданную string.
См. также Сериализация типов данных Qt.
Документация макросов
QStringLiteral(str)
Макрос генерирует данные для QString из строкового литерала str во время компиляции. Создание QString в этом случае бесплатно, а сгенерированные данные строки хранятся в сегменте только для чтения скомпилированного объектного файла.
Если у вас есть код, который выглядит так:
// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) //... то временный QString будет создан для передачи в качестве параметра функции hasAttribute. Это может быть довольно дорого, так как это включает выделение памяти и копирование/преобразование данных в внутреннее кодирование QString.
Эти затраты можно избежать, используя QStringLiteral вместо этого:
if (node.hasAttribute(QStringLiteral(u"http-contents-length"))) //...
В этом случае внутренние данные QString будут сгенерированы во время компиляции; преобразование или выделение памяти не произойдут во время выполнения.
Использование QStringLiteral вместо обычного строкового литерала C++ в двойных кавычках может значительно ускорить создание экземпляров QString из данных, известных на этапе компиляции.
Примечание: QLatin1String может быть еще эффективнее, чем QStringLiteral, когда строка передается функции, имеющей перегрузку, принимающую QLatin1String, и эта перегрузка избегает преобразования в QString. Например, QString::operator==() может сравнивать напрямую с QLatin1String:
if (attribute.name() == QLatin1String("http-contents-length")) //... Примечание: Некоторые компиляторы имеют ошибки при кодировании строк, содержащих символы за пределами набора символов US-ASCII. В таких случаях убедитесь, что вы префикс вашей строки с u. В противном случае это необязательно.
См. также QByteArrayLiteral.
QT_NO_CAST_FROM_ASCII
Отключает автоматические преобразования из 8-битных строк (char *) в Unicode QStrings
См. также QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII и QT_NO_CAST_FROM_BYTEARRAY.
QT_NO_CAST_TO_ASCII
Отключает автоматическое преобразование из QString в 8-битные строки (char *)
См. также QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII и QT_NO_CAST_FROM_BYTEARRAY.
QT_RESTRICTED_CAST_FROM_ASCII
Определение этого макроса отключает большинство автоматических преобразований из исходных литералов и 8-битных данных в Unicode QStrings, но позволяет использовать конструкторы QChar(char) и QString(const char (&ch)[N], а также оператор присваивания QString::operator=(const char (&ch)[N]), предоставляя большинство преимуществ типобезопасности QT_NO_CAST_FROM_ASCII, но не требует от пользовательского кода обертывания символьных и строковых литералов в QLatin1Char, QLatin1String или аналогичные.
Использование этого макроса вместе с исходными строками за пределами диапазона 7-битных символов, не являющимися литералами, или литералами с встроенными нулевыми символами, является неопределенным.
См. также QT_NO_CAST_FROM_ASCII и QT_NO_CAST_TO_ASCII.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qstring.html