Auf dieser Seite

QString Class

Die Klasse „QString“ stellt eine Unicode-Zeichenkette bereit. Mehr...

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

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QString-Vergleiche

KategorieVergleichbare TypenBeschreibung
strongQString
strongQChar, ` QLatin1StringView`, `const char16_t *`, ` QStringView` und ` QUtf8StringView`.
strongQByteArray, ` QByteArrayView` und `const char *`.Beim Vergleich mit Byte-Arrays wird deren Inhalt als UTF-8 interpretiert.

Öffentliche Typen

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

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

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

Makros

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

Ausführliche Beschreibung

QString speichert eine Zeichenkette aus 16-Bit- QChar, wobei jeder „ QChar “ einer UTF-16-Codeeinheit entspricht. (Unicode-Zeichen mit Codewerten über 65535 werden mithilfe von Surrogatpaaren gespeichert, d. h. zwei aufeinanderfolgenden „ QChar“.)

Unicode ist ein internationaler Standard, der die meisten der heute gebräuchlichen Schriftsysteme unterstützt. Es ist eine Obermenge von US-ASCII (ANSI X3.4-1986) und Latin-1 (ISO 8859-1), und alle US-ASCII-/Latin-1-Zeichen sind an denselben Codepositionen verfügbar.

Im Hintergrund nutzt QString implizites Sharing (Copy-on-Write), um den Speicherverbrauch zu reduzieren und unnötiges Kopieren von Daten zu vermeiden. Dies trägt auch dazu bei, den mit der Speicherung von 16-Bit-Zeichen anstelle von 8-Bit-Zeichen verbundenen Overhead zu verringern.

Neben QString bietet Qt auch die Klasse „ QByteArray “ zum Speichern von Rohbytes und herkömmlichen 8-Bit-Zeichenketten, die mit „\0 “ abgeschlossen sind. Für die meisten Zwecke ist QString die Klasse, die Sie verwenden sollten. Sie wird in der gesamten Qt-API verwendet, und die Unicode-Unterstützung stellt sicher, dass sich Ihre Anwendungen leicht übersetzen lassen, falls Sie den Markt für Ihre Anwendung irgendwann erweitern möchten. Zwei wichtige Fälle, in denen „ QByteArray “ angebracht ist, sind die Speicherung von rohen Binärdaten und Situationen, in denen Speicherplatzersparnis entscheidend ist (wie in eingebetteten Systemen).

Initialisierung einer Zeichenkette

Eine Möglichkeit, einen QString zu initialisieren, besteht darin, dem Konstruktor einen „ const char * “ zu übergeben. Der folgende Code erstellt beispielsweise einen QString der Größe 5, der die Daten „Hello“ enthält:

QString str = "Hello";

QString konvertiert die Daten des „ const char * “ mithilfe der Funktion „ fromUtf8()“ in Unicode.

In allen QString-Funktionen, die „ const char * “-Parameter entgegennehmen, wird der „ const char * “ als klassischer, im C-Stil mit „ '\\0' “ abgeschlossener String interpretiert. Sofern der Name der Funktion nicht ausdrücklich auf eine andere Kodierung hinweist, wird davon ausgegangen, dass solche „ const char * “-Parameter in UTF-8 kodiert sind.

Seit Qt 6.4 ist es auch möglich, QStrings mit den Literaloperatoren ` Qt::Literals::StringLiterals::operator""_s()` und ` Qt::Literals::StringLiterals::operator""_L1()` zu initialisieren. In vielen Fällen führt die Verwendung der Literale zu einer Zeichenfolge, die mit „ more efficient string construction “ endet.

Sie können Zeichenfolgen-Daten auch als Array von ` QChar`-Objekten bereitstellen:

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

QString erstellt eine tiefe Kopie der QChar -Daten, sodass Sie diese später ändern können, ohne dass Nebenwirkungen auftreten. Sie können eine tiefe Kopie der Zeichendaten vermeiden, indem Sie stattdessen QStringView oder QString::fromRawData() verwenden.

Ein weiterer Ansatz besteht darin, die Größe der Zeichenkette mit ` resize()` festzulegen und die Daten Zeichen für Zeichen zu initialisieren. QString verwendet 0-basierte Indizes, genau wie C++-Arrays. Um auf das Zeichen an einer bestimmten Indexposition zuzugreifen, können Sie ` operator[]()` verwenden. Bei Strings, die nicht mit `const ` erstellt wurden, gibt ` operator[]()` eine Referenz auf ein Zeichen zurück, die auf der linken Seite einer Zuweisung verwendet werden kann. Zum Beispiel:

QString str;
str.resize(4);

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

Für den schreibgeschützten Zugriff besteht eine alternative Syntax darin, die Funktion ` at()` zu verwenden:

QString str;

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

Die Funktion „ at()“ kann schneller sein als „ operator[]()“, da sie niemals eine tiefe Kopie verursacht. Alternativ können Sie die Funktionen „ first()“, „ last()“ oder „ sliced()“ verwenden, um jeweils mehrere Zeichen gleichzeitig zu extrahieren.

Ein QString kann „\0 “-Zeichen (QChar::Null) enthalten. Die Funktion size() gibt immer die Größe des gesamten Strings zurück, einschließlich der eingebetteten „\0 “-Zeichen.

Nach einem Aufruf der Funktion ` resize()` haben neu zugewiesene Zeichen undefinierte Werte. Um alle Zeichen in der Zeichenkette auf einen bestimmten Wert zu setzen, verwenden Sie die Funktion ` fill()`.

QString bietet Dutzende von Überladungen, die die Verwendung von Zeichenketten vereinfachen sollen. Wenn Sie beispielsweise einen QString mit einem Zeichenkettenliteral vergleichen möchten, können Sie folgenden Code schreiben, der wie erwartet funktioniert:

QString str;

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

Sie können String-Literale auch an Funktionen übergeben, die `QString` als Argumente erwarten, indem Sie den Konstruktor `QString(const char *)` aufrufen. Ebenso können Sie einen `QString` an eine Funktion übergeben, die ein ` const char * `-Argument erwartet, indem Sie das Makro ` qPrintable()` verwenden, das den angegebenen `QString` als ` const char *` zurückgibt. Dies entspricht dem Aufruf von ` toLocal8Bit()`. `constData()` auf den `QString`.

Bearbeitung von Zeichenfolgendaten

QString bietet die folgenden Grundfunktionen zum Ändern der Zeichendaten: ` append()`, ` prepend()`, ` insert()`, ` replace()` und ` remove()`. Zum Beispiel:

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

Im obigen Beispiel sind die ersten beiden Argumente der Funktion ` replace()` die Position, an der das Ersetzen beginnen soll, und die Anzahl der Zeichen, die ersetzt werden sollen.

Wenn datenverändernde Funktionen die Größe der Zeichenkette erhöhen, kann QString den Speicher, in dem es seine Daten hält, neu zuweisen. In diesem Fall erweitert sich QString um mehr, als es unmittelbar benötigt, um Platz für weitere Erweiterungen ohne Neuzuweisung zu schaffen, bis die Größe der Zeichenkette deutlich zugenommen hat.

Die Funktionen ` insert()`, ` remove()` sowie – beim Ersetzen einer Teilzeichenkette durch eine von anderer Länge – ` replace()` können bei großen Zeichenketten langsam sein (lineare Laufzeit), da sie erfordern, dass viele Zeichen in der Zeichenkette um mindestens eine Position im Speicher verschoben werden.

Wenn Sie einen QString schrittweise aufbauen und im Voraus ungefähr wissen, wie viele Zeichen der QString enthalten wird, können Sie ` reserve()` aufrufen und den QString anweisen, eine bestimmte Menge an Speicher vorab zu reservieren. Sie können auch ` capacity()` aufrufen, um herauszufinden, wie viel Speicher der QString tatsächlich reserviert hat.

QString stellt Iteratoren im STL-Stil bereit (QString::const_iterator und QString::iterator). In der Praxis sind Iteratoren besonders nützlich, wenn Sie mit generischen Algorithmen arbeiten, die von der C++-Standardbibliothek bereitgestellt werden.

Hinweis: Es kann nicht davon ausgegangen werden, dassIteratoren über einen QString und Referenzen auf einzelne Zeichen innerhalb eines QString gültig bleiben, wenn eine andere Methode alsconst des QString aufgerufen wird. Der Zugriff auf einen solchen Iterator oder eine solche Referenz nach dem Aufruf einer nicht-`const `-Methode führt zu undefiniertem Verhalten. Wenn Stabilität für iteratorähnliche Funktionen erforderlich ist, sollten Sie Indizes anstelle von Iteratoren verwenden, da diese nicht an den internen Zustand von `QString` gebunden sind und somit nicht ungültig werden.

Hinweis: Aufgrund des impliziten Teilens kann der erste nicht-const -Operator oder die erste nicht- -Funktion, die auf einen bestimmten QString angewendet wird, dazu führen, dass dieser intern eine tiefe Kopie seiner Daten erstellt. Dadurch werden alle Iteratoren über die Zeichenkette sowie Referenzen auf einzelne Zeichen darin ungültig. Rufen Sie keine nicht-konstanten Funktionen auf, während Sie Iteratoren halten. Der Zugriff auf einen Iterator oder eine Referenz, nachdem diese ungültig geworden sind, führt zu undefiniertem Verhalten. Weitere Informationen finden Sie im Abschnitt „Problem mit Iteratoren bei impliziter Freigabe “.

Häufig ist es erforderlich, die Leerzeichen zwischen sichtbaren Zeichen in einer Zeichenkette zu entfernen oder zu vereinfachen. Bei den Zeichen, aus denen diese Leerzeichen bestehen, handelt es sich um solche, für die ` isSpace()` den Wert ` true` zurückgibt, wie beispielsweise das einfache Leerzeichen ` ' '`, den horizontalen Tabulator ` '\\t' ` und das Zeilenendezeichen ` '\\n'`. Um eine Kopie einer Zeichenkette zu erhalten, bei der alle Leerzeichen am Anfang und am Ende weggelassen werden, verwenden Sie ` trimmed()`. Um zudem jede Folge von Leerzeichen innerhalb der Zeichenkette durch ein einfaches Leerzeichen zu ersetzen ( ' '), verwenden Sie simplified().

Wenn Sie alle Vorkommen eines bestimmten Zeichens oder einer bestimmten Teilzeichenfolge in einem QString finden möchten, verwenden Sie die Funktionen „ indexOf()“ oder „ lastIndexOf()“. Erstere sucht vorwärts, letztere rückwärts. Bei beiden kann eine Indexposition angegeben werden, ab der die Suche beginnen soll. Beide Funktionen geben die Indexposition des Zeichens oder der Teilzeichenfolge zurück, sofern sie diese finden; andernfalls geben sie -1 zurück. Hier ist beispielsweise eine typische Schleife, die alle Vorkommen einer bestimmten Teilzeichenfolge findet:

QString str = "We must be <b>bold</b>, very <b>bold</b>";
qsizetype j = 0;

while ((j = str.indexOf("<b>", j)) !=-1) {
    qDebug() << "Found <b> tag at index position" << j;
   ++j;
}

QString bietet zahlreiche Funktionen zur Konvertierung von Zahlen in Zeichenketten und von Zeichenketten in Zahlen. Siehe die Funktionen arg(), die Funktionen setNum(), die statischen Funktionen number() sowie die Funktionen toInt(), toDouble() und ähnliche Funktionen.

Um eine Groß- oder Kleinbuchstabenversion einer Zeichenkette zu erhalten, verwenden Sie „ toUpper()“ oder „ toLower()“.

Listen von Zeichenketten werden von der Klasse ` QStringList ` verarbeitet. Mit der Funktion ` split()` können Sie eine Zeichenkette in eine Liste von Zeichenketten aufteilen und mit ` QStringList::join()` eine Liste von Zeichenketten zu einer einzigen Zeichenkette mit einem optionalen Trennzeichen zusammenfügen. Sie können aus einer Zeichenkettenliste eine gefilterte Liste erhalten, indem Sie die Einträge auswählen, die eine bestimmte Teilzeichenkette enthalten oder einem bestimmten ` QRegularExpression` entsprechen. Weitere Informationen finden Sie unter ` QStringList::filter()`.

Abfrage von Zeichenfolgen-Daten

Um zu prüfen, ob ein QString mit einer bestimmten Teilzeichenfolge beginnt oder endet, verwenden Sie „ startsWith()“ oder „ endsWith()“. Um zu prüfen, ob ein QString ein bestimmtes Zeichen oder eine bestimmte Teilzeichenfolge enthält, verwenden Sie die Funktion „ contains()“. Um herauszufinden, wie oft ein bestimmtes Zeichen oder eine bestimmte Teilzeichenfolge in einer Zeichenkette vorkommt, verwenden Sie „ count()“.

Um einen Zeiger auf die eigentlichen Zeichendaten zu erhalten, rufen Sie „ data “ () oder „ constData “ () auf. Diese Funktionen geben einen Zeiger auf den Anfang der „ QChar “-Daten zurück. Es ist gewährleistet, dass der Zeiger gültig bleibt, bis eine Funktion aufgerufen wird, die nicht zu den „const “-Funktionen gehört.

Vergleich von Zeichenketten

QStrings können mithilfe überladener Operatoren wie operator<(), operator<=(), operator==(), operator>=() usw. verglichen werden. Der Vergleich basiert ausschließlich auf der lexikografischen Reihenfolge der beiden Zeichenfolgen, die als Folgen von UTF-16-Codeeinheiten betrachtet werden. Er ist sehr schnell, entspricht jedoch nicht den Erwartungen eines Menschen; die Funktion „ QString::localeAwareCompare()“ ist in der Regel die bessere Wahl für das Sortieren von Zeichenfolgen in der Benutzeroberfläche, sofern ein solcher Vergleich verfügbar ist.

Wenn Qt mit der ICU-Bibliothek verknüpft ist (was in der Regel der Fall ist), wird deren lokalisierungsbezogene Sortierung verwendet. Andernfalls kommen plattformspezifische Lösungen zum Einsatz:

  • Unter Windows verwendet ` localeAwareCompare()` die aktuelle Benutzer-Locale, wie sie im Abschnitt „ regional “ und „ language “ unter Control Panel festgelegt ist.
  • Unter macOS und iOS vergleicht ` localeAwareCompare()` entsprechend der Einstellung „ Order for sorted lists “ im Bereich „ International preferences “.
  • Auf anderen Unix-ähnlichen Systemen greift der Vergleich auf die Funktion „ strcoll() “ der Systembibliothek zurück.

Konvertierung zwischen kodierten Zeichenfolgendaten und QString

QString bietet die folgenden Funktionen, die eine „ const char * “-Version der Zeichenkette als „ QByteArray “ zurückgeben: ` toUtf8()`, ` toLatin1()` und ` toLocal8Bit()`.

  • toLatin1() gibt eine in Latin-1 (ISO 8859-1) kodierte 8-Bit-Zeichenkette zurück.
  • toUtf8() gibt eine UTF-8-kodierte 8-Bit-Zeichenkette zurück. UTF-8 ist eine Obermenge von US-ASCII (ANSI X3.4-1986), die den gesamten Unicode-Zeichensatz durch Multibyte-Sequenzen unterstützt.
  • toLocal8Bit() gibt eine 8-Bit-Zeichenkette unter Verwendung der lokalen Kodierung des Systems zurück. Dies entspricht auf Unix-Systemen der Funktion „ toUtf8()“.

Zur Konvertierung aus einer dieser Kodierungen stellt QString die Funktionen ` fromLatin1()`, ` fromUtf8()` und ` fromLocal8Bit()` bereit. Weitere Kodierungen werden über die Klassen ` QStringEncoder ` und ` QStringDecoder ` unterstützt.

Wie oben erwähnt, bietet QString zahlreiche Funktionen und Operatoren, die die Zusammenarbeit mit const char * -Zeichenketten vereinfachen. Diese Funktionalität ist jedoch ein zweischneidiges Schwert: Sie macht die Verwendung von QString bequemer, wenn alle Zeichenketten im US-ASCII- oder Latin-1-Format vorliegen, birgt jedoch stets das Risiko, dass eine implizite Konvertierung von oder zu „ const char * “ unter Verwendung der falschen 8-Bit-Kodierung erfolgt. Um diese Risiken zu minimieren, können Sie diese impliziten Konvertierungen deaktivieren, indem Sie einige der folgenden Präprozessorsymbole definieren:

  • QT_NO_CAST_FROM_ASCII deaktiviert automatische Konvertierungen von C-Zeichenkettenliteralen und -Zeigern nach Unicode.
  • QT_RESTRICTED_CAST_FROM_ASCII Erlaubt automatische Konvertierungen von C-Zeichen und Zeichenarrays, deaktiviert jedoch automatische Konvertierungen von Zeichenzeigern in Unicode.
  • QT_NO_CAST_TO_ASCII Deaktiviert die automatische Konvertierung von QString in C-Zeichenketten.

Sie müssen dann explizit ` fromUtf8()`, ` fromLatin1()` oder ` fromLocal8Bit()` aufrufen, um einen `QString` aus einer 8-Bit-Zeichenkette zu erstellen, oder die leichtgewichtige Klasse ` QLatin1StringView ` verwenden. Zum Beispiel:

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

Ebenso müssen Sie toLatin1(), toUtf8() oder toLocal8Bit() explizit aufrufen, um den QString in eine 8-Bit-Zeichenkette zu konvertieren.

Hinweis für C-Programmierer
Aufgrund des Typsystems von C++ und der Tatsache, dass `QString` implizit gemeinsam genutzt wird, können `QStrings` wie ` int`s oder andere Grundtypen behandelt werden. Zum Beispiel:
QString Widget::boolToString(bool b)
{
    QString result;
    if (b)
        result = "True";
    else
        result = "False";
    return result;
}

Die Variable ` result ` ist eine normale Variable, die auf dem Stack zugewiesen wird. Wenn ` return ` aufgerufen wird – und da wir nach Wert zurückgeben –, wird der Kopierkonstruktor aufgerufen und eine Kopie der Zeichenkette zurückgegeben. Dank der impliziten gemeinsamen Nutzung findet jedoch keine tatsächliche Kopie statt.

Unterscheidung zwischen Null- und leeren Zeichenketten

Aus historischen Gründen unterscheidet QString zwischen Null- und leeren Zeichenketten. Eine Null-Zeichenkette ist eine Zeichenkette, die mit dem Standardkonstruktor von QString oder durch Übergabe von ` nullptr ` an den Konstruktor initialisiert wird. Eine leere Zeichenkette ist jede Zeichenkette mit der Größe 0. Eine Null-Zeichenkette ist immer leer, aber eine leere Zeichenkette ist nicht unbedingt null:

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

Alle Funktionen mit Ausnahme von ` isNull()` behandeln Null-Zeichenketten genauso wie leere Zeichenketten. Zum Beispiel: ` toUtf8()`. `constData()` gibt für eine Null-Zeichenkette einen gültigen Zeiger (nicht ` nullptr`) auf das Zeichen „\0 “ zurück. Wir empfehlen, immer die Funktion ` isEmpty()` zu verwenden und ` isNull()` zu vermeiden.

Zahlenformate

Wenn ein Formatbezeichner von ` QString::arg()` '%' den Lokalisierungsqualifizierer ` 'L' ` enthält und die Basis zehn ist (Standardwert), wird die Standardlokalisierung verwendet. Diese kann mit ` QLocale::setDefault()` festgelegt werden. Für eine feinere Steuerung der lokalisierten Zeichenfolgendarstellung von Zahlen siehe ` QLocale::toString()`. Alle anderen von `QString` durchgeführten Zahlenformatierungen folgen der Darstellung von Zahlen gemäß der C-Lokalisierung.

Wenn „ QString::arg “ () Zahlen links auffüllt, wird das Füllzeichen „ '0' “ besonders behandelt. Ist die Zahl negativ, erscheint ihr Minuszeichen vor der Auffüllung mit Nullen. Ist das Feld lokalisiert, wird anstelle von „ '0' “ das für die Locale geeignete Nullzeichen verwendet. Bei Gleitkommazahlen gilt diese Sonderbehandlung nur, wenn die Zahl endlich ist.

Gleitkommaformate

In Mitgliedsfunktionen (z. B. ` arg()` und ` number()`), die Gleitkommazahlen (`float ` oder ` double`) als Zeichenketten formatieren, kann die verwendete Darstellung durch die Wahl von Format und Genauigkeit gesteuert werden, deren Bedeutungen denen von ` QLocale::toString` (double, char, int) entsprechen.

Wenn das ausgewählte Format einen Exponenten enthält, folgen lokalisierte Darstellungen den Konventionen der Locale bezüglich der Ziffern im Exponenten. Bei nicht lokalisierter Formatierung zeigt der Exponent sein Vorzeichen und enthält mindestens zwei Ziffern, die bei Bedarf links mit Nullen aufgefüllt werden.

Effizientere Zeichenfolgenbildung

Viele Zeichenketten sind bereits zur Kompilierungszeit bekannt. Der QString-Konstruktor, der aus C++-Zeichenkettenliteralen erstellt wird, kopiert den Inhalt der Zeichenkette und behandelt diesen als UTF-8. Dies erfordert eine Speicherzuweisung und eine Neukodierung der Zeichenkettendaten – Vorgänge, die zur Laufzeit stattfinden. Sind die Zeichenfolgendaten bereits zur Kompilierungszeit bekannt, können Sie stattdessen das Makro „ QStringLiteral “ oder analog „ operator""_s “ verwenden, um die Nutzdaten des QString bereits zur Kompilierungszeit zu erstellen.

Mit dem QString-Operator ` '+' ` lässt sich auf einfache Weise eine komplexe Zeichenkette aus mehreren Teilzeichenketten zusammenstellen. Oftmals werden Sie Code wie den folgenden schreiben:

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

    QString foo;
    QString type = "long";

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

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

An keiner dieser Zeichenfolgenkonstruktionen ist etwas auszusetzen, doch es gibt einige versteckte Ineffizienzen:

Erstens kann die wiederholte Verwendung des Operators „ '+' “ zu mehreren Speicherzuweisungen führen. Beim Verketten von n Teilzeichenfolgen, wobei n > 2 ist, kann es zu bis zu n – 1 Aufrufen des Speicherzuweisers kommen.

Diese Zuweisungen können durch eine interne Klasse „ QStringBuilder “ optimiert werden. Diese Klasse ist als „internal“ gekennzeichnet und erscheint nicht in der Dokumentation, da sie nicht dazu gedacht ist, in Ihrem Code instanziiert zu werden. Ihre Verwendung erfolgt automatisch, wie im Folgenden beschrieben.

QStringBuilder verwendet Ausdrucksvorlagen und implementiert den Operator ` '%' ` neu, sodass bei der Verwendung von ` '%' ` anstelle von ` '+'` zur Zeichenfolgenverkettung mehrere Teilzeichenfolgenverkettungen aufgeschoben werden, bis das Endergebnis einem `QString` zugewiesen werden soll. Zu diesem Zeitpunkt ist der für das Endergebnis benötigte Speicherbedarf bekannt. Der Speicherzuordner wird dann einmal aufgerufen, um den benötigten Speicherplatz zu erhalten, und die Teilzeichenfolgen werden nacheinander dorthin kopiert.

Zusätzliche Effizienzgewinne ergeben sich durch Inlining und die Reduzierung der Referenzzählung (der aus ` QStringBuilder ` erstellte `QString` hat eine Referenzzahl von 1, während ` QString::append()` einen zusätzlichen Test erfordert).

Es gibt zwei Möglichkeiten, auf diese verbesserte Methode der Zeichenfolgenkonstruktion zuzugreifen. Der einfachste Weg besteht darin, ` QStringBuilder ` überall dort einzubinden, wo Sie es verwenden möchten, und beim Verketten von Zeichenfolgen den Operator ` '%' ` anstelle von ` '+' ` zu verwenden:

    #include <QStringBuilder>

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

Ein globalerer Ansatz, der bequemer, aber nicht vollständig quellkompatibel ist, besteht darin, „ QT_USE_QSTRINGBUILDER “ zur Erstellungszeit zu definieren (indem man es zu den Compiler-Flags hinzufügt). Dadurch funktioniert die Verkettung von Zeichenketten mit „ '+' “ genauso wie mit „ QStringBuilder's “ '%'.

Hinweis: Wenn bei aktiviertem QStringBuilder die automatische Typableitung (beispielsweise durch Verwendung des Schlüsselworts „ auto “) auf das Ergebnis einer Zeichenfolgenverkettungangewendet wird , zeigt sich, dass es sich bei der Verkettung tatsächlich um ein Objekt einer QStringBuilder-Spezialisierung handelt:

    QString str("QStringBuilder");

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

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

Dies hat keine negativen Auswirkungen, da QStringBuilder bei Bedarf implizit in QString konvertiert wird. Sollte dies unerwünscht sein, sollte man die erforderlichen Typen angeben, anstatt sie vom Compiler ableiten zu lassen:

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

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

Maximale Größe und Speicherengpässe

Die maximale Größe von QString hängt von der Architektur ab. Die meisten 64-Bit-Systeme können mehr als 2 GB Speicher zuweisen, wobei die typische Obergrenze bei 2^63 Byte liegt. Der tatsächliche Wert hängt zudem vom Overhead ab, der für die Verwaltung des Datenblocks erforderlich ist. Daher können Sie auf 32-Bit-Plattformen mit einer maximalen Größe von 2 GB abzüglich des Overheads und auf 64-Bit-Plattformen mit 2^63 Byte abzüglich des Overheads rechnen. Die Anzahl der Elemente, die in einem QString gespeichert werden können, entspricht dieser maximalen Größe geteilt durch die Größe von ` QChar`.

Wenn die Speicherzuweisung fehlschlägt, löst QString eine „ std::bad_alloc “-Ausnahme aus, sofern die Anwendung mit Ausnahmeunterstützung kompiliert wurde. Speichermangel in Qt-Containern sind die einzigen Fälle, in denen Qt Ausnahmen auslöst. Sind Ausnahmen deaktiviert, gilt Speichermangel als undefiniertes Verhalten.

Hinweis: Zielbetriebssysteme können Beschränkungen hinsichtlich der Gesamtmenge an Speicher, die eine Anwendung zuweisen darf, oder hinsichtlich der Größe einzelner Zuweisungen auferlegen. Dies kann die Größe der Zeichenkette, die ein `QString` aufnehmen kann, weiter einschränken. Die Abmilderung oder Steuerung des durch diese Beschränkungen verursachten Verhaltens liegt außerhalb des Geltungsbereichs der Qt-API.

Siehe auch „Welche String-Klasse soll verwendet werden?“, „ fromRawData()“, „ QChar “, „ QStringView “, „ QLatin1StringView “ und „ QByteArray “.

Dokumentation zu Mitgliedstypen

QString::ConstIterator

Synonym im Qt-Stil für „ QString::const_iterator “.

QString::Iterator

Synonym im Qt-Stil für „ QString::iterator “.

enum QString::NormalizationForm

Diese Enumeration beschreibt die verschiedenen normalisierten Formen von Unicode-Text.

KonstanteWertBeschreibung
QString::NormalizationForm_D0Kanonische Zerlegung
QString::NormalizationForm_C1Kanonische Zerlegung, gefolgt von kanonischer Zusammensetzung
QString::NormalizationForm_KD2Kompatibilitätszerlegung
QString::NormalizationForm_KC3Kompatibilitätszerlegung gefolgt von kanonischer Zusammensetzung

Siehe auch „ normalized“ () und Unicode-Standard Anhang Nr. 15.

enum QString::SectionFlag
flags QString::SectionFlags

Diese Enumeration legt Flags fest, mit denen verschiedene Aspekte des Verhaltens der Funktion ` section()` in Bezug auf Trennzeichen und leere Felder beeinflusst werden können.

KonstanteWertBeschreibung
QString::SectionDefault0x00Leere Felder werden gezählt, führende und nachfolgende Trennzeichen werden nicht berücksichtigt, und beim Vergleich des Trennzeichens wird die Groß-/Kleinschreibung beachtet.
QString::SectionSkipEmpty0x01Leere Felder werden so behandelt, als ob sie nicht existierten, d. h., sie werden hinsichtlich Start und Ende nicht berücksichtigt.
QString::SectionIncludeLeadingSep0x02Das führende Trennzeichen (falls vorhanden) in die Ergebniszeichenfolge einbeziehen.
QString::SectionIncludeTrailingSep0x04Das abschließende Trennzeichen (falls vorhanden) wird in die Ergebniszeichenfolge aufgenommen.
QString::SectionCaseInsensitiveSeps0x08Vergleichen Sie das Trennzeichen ohne Berücksichtigung der Groß-/Kleinschreibung.

Der Typ `SectionFlags` ist ein `typedef` für ` QFlags<SectionFlag>`. Er speichert eine ODER-Kombination von `SectionFlag`-Werten.

Siehe auch ` section()`.

QString::const_iterator

Siehe auch QString::iterator.

QString::const_pointer

Der Typdefinitionsbezeichner „QString::const_pointer“ stellt einen konstanten Zeiger im STL-Stil auf ein Element vom Typ „ QString “ bereit (QChar).

QString::const_reference

QString::const_reverse_iterator

Siehe auch QString::reverse_iterator und QString::const_iterator.

QString::difference_type

QString::iterator

Siehe auch QString::const_iterator.

QString::pointer

Der Typedef „QString::pointer“ stellt einen Zeiger im STL-Stil auf ein Element vom Typ „ QString “ bereit (QChar).

QString::reference

QString::reverse_iterator

Siehe auch QString::const_reverse_iterator und QString::iterator.

QString::size_type

QString::value_type

Dokumentation zu Member-Funktionen

[constexpr noexcept] QString::QString()

Erzeugt eine Null-Zeichenkette. Null-Zeichenketten gelten ebenfalls als leer.

Siehe auch isEmpty(), isNull() und Distinction Between Null and Empty Strings.

QString::QString(QChar ch)

Erstellt eine Zeichenkette der Größe 1, die das Zeichen „ ch “ enthält.

QString::QString(QLatin1StringView str)

Erstellt eine Kopie der Latin-1-Zeichenkette, wie sie von str dargestellt wird.

Siehe auch fromLatin1().

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

Erstellt eine Zeichenkette, die mit den Daten der String-Ansicht initialisiert wird.

Der QString ist genau dann null, wenn „ sv “ null ist.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` fromUtf16()`.

QString::QString(const QByteArray &ba)

Erstellt eine Zeichenkette, die mit dem Byte-Array „ ba “ initialisiert wird. Das angegebene Byte-Array wird mithilfe von „ fromUtf8()“ in Unicode konvertiert.

Sie können diesen Konstruktor deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommen und in Unicode-Nullzeichen (U+0000) konvertiert. Dieses Verhalten unterscheidet sich von Qt 5.x.

Siehe auch ` fromLatin1()`, ` fromLocal8Bit()` und ` fromUtf8()`.

QString::QString(const char *str)

Erstellt eine Zeichenkette, die mit der 8-Bit-Zeichenkette „ str “ initialisiert ist. Der angegebene const char-Zeiger wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diesen Konstruktor deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Hinweis: Die Definition von ` QT_RESTRICTED_CAST_FROM_ASCII ` deaktiviert ebenfalls diesen Konstruktor, aktiviert jedoch stattdessen einen ` QString(const char (&ch)[N]) `-Konstruktor. Die Verwendung von nicht-literaler Eingabe oder von Eingaben mit eingebetteten NUL-Zeichen oder Nicht-7-Bit-Zeichen ist in diesem Fall undefiniert.

Siehe auch fromLatin1(), fromLocal8Bit() und fromUtf8().

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

Erzeugt eine Zeichenkette, die mit der UTF-8-Zeichenkette „ str “ initialisiert ist. Der angegebene Zeiger vom Typ `const char8_t` wird mithilfe der Funktion ` fromUtf8()` in Unicode konvertiert.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch fromLatin1(), fromLocal8Bit() und fromUtf8().

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

Erstellt eine Zeichenkette, die mit den ersten size Zeichen des Arrays QChar unicode initialisiert wird.

Ist unicode gleich 0, wird eine leere Zeichenkette erstellt.

Ist size negativ, wird angenommen, dass unicode auf ein durch „'\0'“ abgeschlossenes Array verweist, dessen Länge dynamisch ermittelt wird. Das abschließende Nullzeichen wird nicht als Teil der Zeichenkette betrachtet.

QString erstellt eine tiefe Kopie der Zeichenfolgendaten. Die Unicode-Daten werden unverändert kopiert, und die Byte-Order-Markierung bleibt, sofern vorhanden, erhalten.

Siehe auch ` fromRawData()`.

QString::QString(qsizetype size, QChar ch)

Erstellt eine Zeichenkette aus dem angegebenen „ size “, wobei jedes Zeichen auf „ ch “ gesetzt wird.

Siehe auch fill().

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

Erstellt eine Kopie von ` other`.

Dieser Vorgang dauert eine konstante Zeit, da QString implizit gemeinsam genutzt wird. Dadurch ist die Rückgabe eines QString aus einer Funktion sehr schnell. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Siehe auch ` operator=()`.

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

Erstellt eine QString-Instanz und sorgt dafür, dass diese auf dasselbe Objekt verweist, auf das zuvor „ other “ verwiesen hat.

[noexcept] QString::~QString()

Löscht die Zeichenkette.

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

Fügt die Zeichenfolge „ str “ am Ende dieser Zeichenfolge an.

Beispiel:

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

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

Dies entspricht der Verwendung der Funktion ` insert()`:

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

Die Funktion `append()` ist in der Regel sehr schnell (konstante Laufzeit), da ` QString ` am Ende der Zeichenkettendaten zusätzlichen Speicherplatz vorab reserviert, sodass die Zeichenkette wachsen kann, ohne dass jedes Mal die gesamte Zeichenkette neu zugewiesen werden muss.

Siehe auch „ operator+=()“, „ prepend()“ und „ insert()“.

QString &QString::append(QChar ch)

Fügt das Zeichen „ ch “ an diese Zeichenkette an.

Diese Funktion überlädt die Methode ` QString::append()`.

QString &QString::append(QLatin1StringView str)

Fügt die von ` str ` zurückgegebene Latin-1-Zeichenkette an diese Zeichenkette an.

Diese Funktion überlädt die Funktion ` QString::append()`.

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

Fügt die angegebene String-View „ v “ an diesen String an und gibt das Ergebnis zurück.

Diese Funktion überlädt QString::append().

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Fügt die UTF-8-Zeichenkette „ str “ an diese Zeichenkette an.

Diese Funktion überlädt die Funktion ` QString::append()`.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Fügt das Byte-Array „ ba “ an diese Zeichenkette an. Das angegebene Byte-Array wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diese Funktion deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch die Funktion ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt die Funktion ` QString::append()`.

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

Fügt die Zeichenkette „ str “ an diese Zeichenkette an. Der angegebene „const char“-Zeiger wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diese Funktion deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt die Funktion ` QString::append()`.

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

Fügt die Zeichen aus dem Array „ QChar “ str als Zeichenkette „ len “ an diese Zeichenkette an.

Diese Funktion überlädt die Funktion ` QString::append()`.

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

Ersetzt alle Vorkommen von „ %N “ in dieser Zeichenfolge durch das entsprechende Argument aus „ args “. Die Argumente sind nicht positionsabhängig: Das erste Argument aus „ args “ ersetzt „ %N “ durch den niedrigsten Wert aus „ N “ (alle), das zweite Argument aus „ args “ ersetzt „ %N “ durch den nächstniedrigeren Wert aus „ N “ usw.

Args kann aus beliebigen Zeichen bestehen, die implizit in „ QAnyStringView “ konvertiert werden.

Hinweis: In Qt-Versionen vor 6.9 wurden „ QAnyStringView “- und UTF-8-Zeichenfolgen (QUtf8StringView, QByteArray, QByteArrayView, const char8_t* usw.) nicht als „ args “ unterstützt.

Siehe auch QString::arg().

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

Gibt eine Kopie dieser Zeichenkette zurück, wobei der Platzhalter mit der niedrigsten Nummer durch die Zeichenkette „ a “ ersetzt wird, d. h. „ %1 “, „ %2 “, …, „ %99 “.

fieldWidth Legt die Mindestlänge fest, die „ a “ einnehmen soll. Wenn „ a “ weniger Platz benötigt als „ fieldWidth “, wird es mit dem Zeichen „ fillChar “ auf „ fieldWidth “ aufgefüllt. Ein positiver Wert für „ fieldWidth “ erzeugt rechtsbündigen Text. Ein negativer Wert für „ fieldWidth “ erzeugt linksbündigen Text.

Dieses Beispiel zeigt, wie wir eine Zeichenkette vom Typ „ status “ erstellen können, um den Fortschritt bei der Verarbeitung einer Dateiliste anzuzeigen:

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);

Zunächst ersetzt „ arg(i) “ „ %1 “. Dann ersetzt „ arg(total) “ „ %2 “. Schließlich ersetzt „ arg(fileName) “ „ %3 “.

Ein Vorteil der Verwendung von `arg()` gegenüber ` asprintf()` besteht darin, dass sich die Reihenfolge der nummerierten Platzhalter ändern kann, wenn die Zeichenfolgen der Anwendung in andere Sprachen übersetzt werden, aber jedes `arg()` ersetzt dennoch den Platzhalter mit der niedrigsten Nummer, der noch nicht ersetzt wurde, unabhängig davon, wo er vorkommt. Wenn der Platzhalter „ %i “ mehr als einmal in der Zeichenkette vorkommt, ersetzt arg() alle Vorkommen.

Wenn kein unersetzter Platzhalter mehr vorhanden ist, wird eine Warnmeldung ausgegeben und das Ergebnis ist undefiniert. Die Nummern der Platzhalter müssen im Bereich von 1 bis 99 liegen.

Hinweis: In Qt-Versionen vor 6.9 wurde diese Funktion für die Argumente char, QChar, QString, QStringView und QLatin1StringView überladen, und in einigen Fällen wurden die Argumente wchar_t und char16_t den ganzzahligen Überladungen zugeordnet. In Qt-Versionen vor 5.10 fehlten dieser Funktion die Überladungen QStringView und QLatin1StringView.

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

Das Argument ` a ` wird in der Basis ` base` angegeben, die standardmäßig 10 beträgt und zwischen 2 und 36 liegen muss. Bei anderen Basen als 10 wird ` a ` als vorzeichenlose Ganzzahl behandelt.

fieldWidth Gibt die Mindestanzahl an Zeichen an, auf die „ a “ aufgefüllt und mit dem Zeichen „ fillChar “ ergänzt wird. Ein positiver Wert führt zu rechtsbündigem Text; ein negativer Wert zu linksbündigem Text.

Auf das „%“ kann ein „L“ folgen; in diesem Fall wird die Zeichenfolge durch eine lokalisierte Darstellung von ` a` ersetzt. Die Konvertierung verwendet die Standard-Locale, die durch ` QLocale::setDefault()` festgelegt wurde. Wenn keine Standard-Locale angegeben wurde, wird die System-Locale verwendet. Das „L“-Flag wird ignoriert, wenn ` base ` nicht 10 ist.

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"

Hinweis: In Qt-Versionen vor 6.10.1 akzeptierte diese Funktion Argumente von Typen, die implizit in ganzzahlige Typen konvertiert wurden. Dies wird nicht mehr unterstützt, mit Ausnahme von (nicht in einem Gültigkeitsbereich stehenden) Enums, da auch Typen akzeptiert wurden, die in Gleitkommatypen konvertierbar waren, wodurch bei der Ausgabe als Ganzzahlen Genauigkeit verloren ging. Eine abwärtskompatible Lösung besteht darin, solche Typen in einen C++-Typ zu konvertieren, dessen Anzeigeform Ihren Absichten entspricht (int, float, ...).

Hinweis: In Qt-Versionen vor 6.9 wurde diese Funktion für verschiedene ganzzahlige Typen überladen und akzeptierte manchmal fälschlicherweise Argumente vom Typ „ char “ und „ char16_t “.

Diese Funktion überlädt QString::arg().

Siehe auch Number formats.

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

Das Argument „ a “ wird gemäß den angegebenen Formaten „ format “ und „ precision “ formatiert. Weitere Informationen finden Sie unter Floating-point Formats.

fieldWidth Gibt die Mindestlänge an, auf die ` a ` aufgefüllt und mit dem Zeichen ` fillChar` ergänzt wird. Ein positiver Wert führt zu rechtsbündigem Text, ein negativer Wert zu linksbündigem Text.

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

Hinweis: In Qt-Versionen vor 6.9 war diese Funktion eine reguläre Funktion, die „ double “ entgegennahm. Da es sich nun um eine Template-Funktion handelt, akzeptiert sie keine Argumente mehr, die lediglich implizit in Gleitkommatypen konvertiert werden. Eine abwärtskompatible Lösung besteht darin, solche Typen in einen der C++-Gleitkommatypen zu casten.

Diese Funktion überlädt ` QString::arg()`.

Siehe auch ` QLocale::toString()`, ` QLocale::FloatingPointPrecisionOption` und ` Number formats`.

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

Erstellt auf sichere Weise eine formatierte Zeichenkette aus der Formatzeichenkette „ cformat “ und einer beliebigen Liste von Argumenten.

Die Formatzeichenfolge unterstützt die Konvertierungsspezifizierer, Längenmodifikatoren und Flags, die von `printf()` in der Standard-C++-Bibliothek bereitgestellt werden. Die Zeichenfolge ` cformat ` und die Argumente ` %s ` müssen UTF-8-kodiert sein.

Hinweis: Die Escape-Sequenz „ %lc “ erwartet ein Unicode-Zeichen vom Typ „ char16_t “ (wie von ` QChar::unicode()` zurückgegeben) oder „ ushort “. Die Escape-Sequenz „ %ls “ erwartet einen Zeiger auf ein nullterminiertes Array von Unicode-Zeichen vom Typ „ char16_t “ oder „ ushort “ (wie von `QString::utf16()` zurückgegeben). Dies steht im Widerspruch zum `printf()` der Standard-C++-Bibliothek, das ` %lc ` zum Ausgeben eines `wchar_t` und ` %ls ` zum Ausgeben eines ` wchar_t*` definiert, und kann auf Plattformen, auf denen die Größe von ` wchar_t ` nicht 16 Bit beträgt, zu Compiler-Warnungen führen.

Warnung: Wir raten davon ab, QString::asprintf() in neuem Qt-Code zu verwenden. Ziehen Sie stattdessen die Verwendung von QTextStream oder arg() in Betracht, die beide Unicode-Zeichenketten nahtlos unterstützen und typsicher sind. Hier ist ein Beispiel, das QTextStream verwendet:

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

Bei ` translations` sollten Sie, insbesondere wenn die Zeichenfolgen mehr als eine Escape-Sequenz enthalten, stattdessen die Funktion ` arg()` in Betracht ziehen. Dadurch kann die Reihenfolge der Ersetzungen vom Übersetzer gesteuert werden.

Siehe auch ` arg()`.

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

Ersetzt den Inhalt dieser Zeichenkette durch eine Kopie von v und gibt eine Referenz auf diese Zeichenkette zurück.

Die Größe dieser Zeichenkette entspricht der Größe von v, die wie bei v.toString() in UTF-16 konvertiert wurde. Im Gegensatz zu QAnyStringView::toString() reserviert diese Funktion jedoch nur dann Speicher, wenn die geschätzte Größe die Kapazität dieser Zeichenkette überschreitet oder diese Zeichenkette gemeinsam genutzt wird.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch ` QAnyStringView::toString()`.

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

Ersetzt den Inhalt dieser Zeichenkette durch eine Kopie der Elemente im Iteratorbereich [first, last) und gibt eine Referenz auf diese Zeichenkette zurück.

Die Größe dieser Zeichenkette entspricht der dekodierten Länge der Elemente im Bereich [first, last), die nicht unbedingt mit der Länge des Bereichs selbst übereinstimmen muss, da diese Funktion den Eingabezeichensatz transparent in UTF-16 umcodiert.

Diese Funktion reserviert nur dann Speicher, wenn die Anzahl der Elemente im Bereich oder – bei nicht UTF-16-kodierten Eingaben – die maximal mögliche Größe der resultierenden Zeichenkette die Kapazität dieser Zeichenkette überschreitet oder wenn diese Zeichenkette gemeinsam genutzt wird.

Hinweis: Das Verhalten ist undefiniert, wenn eines der Argumente ein Iterator auf *this ist oder [first, last) kein gültiger Bereich ist.

Einschränkungen

Nimmt nur dann an der Überladungsauflösung teil, wenn „ InputIterator “ die Anforderungen eines „LegacyInputIterator“ erfüllt und der „ value_type “ von „ InputIterator “ einer der folgenden Zeichentypen ist:

  • QChar
  • QLatin1Char
  • char
  • unsigned char
  • signed char
  • char8_t
  • char16_t
  • (auf Plattformen wie Windows, auf denen es sich um einen 16-Bit-Typ handelt) wchar_t
  • char32_t

Diese Funktion wurde in Qt 6.6 eingeführt.

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

Ersetzt den Inhalt dieser Zeichenkette durch n Kopien von c und gibt eine Referenz auf diese Zeichenkette zurück.

Die Größe dieser Zeichenkette entspricht n, wobei dieser Wert nicht negativ sein darf.

Diese Funktion reserviert nur dann Speicher, wenn „ n “ die Kapazität dieser Zeichenkette überschreitet oder diese Zeichenkette gemeinsam genutzt wird.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch ` fill()`.

const QChar QString::at(qsizetype position) const

Gibt das Zeichen an der angegebenen Indexposition position in der Zeichenkette zurück.

Der Index ` position ` muss eine gültige Indexposition in der Zeichenkette sein (d. h., 0 <= ` position ` < ` size())`.

Siehe auch ` operator[]()`.

QChar &QString::back()

Gibt eine Referenz auf das letzte Zeichen der Zeichenkette zurück. Entspricht „ operator[](size() - 1) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für eine leere Zeichenkette führt zu undefiniertem Verhalten.

Siehe auch front(), at() und operator[]().

QChar QString::back() const

Gibt das letzte Zeichen der Zeichenkette zurück. Entspricht „ at(size() - 1) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für eine leere Zeichenkette führt zu undefiniertem Verhalten.

Siehe auch front(), at() und operator[]().

QString::iterator QString::begin()

Gibt einen Iterator im STL-Stil zurück, der auf das erste Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei Trennung oder bei Änderung des „ QString “ ungültig.

Siehe auch „ constBegin()“ und „ end()“.

QString::const_iterator QString::begin() const

Diese Funktion überlädt die Funktion „ QString::begin()“.

qsizetype QString::capacity() const

Gibt die maximale Anzahl an Zeichen zurück, die in der Zeichenkette gespeichert werden können, ohne dass eine Neuzuweisung erzwungen wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von QString bereitzustellen. Im Allgemeinen werden Sie diese Funktion so gut wie nie aufrufen müssen. Wenn Sie wissen möchten, wie viele Zeichen die Zeichenkette enthält, rufen Sie size() auf.

Hinweis: Eine statisch zugewiesene Zeichenkette gibt eine Kapazität von 0 zurück, auch wenn sie nicht leer ist.

Hinweis: Die Positiondes freien Speicherplatzes im zugewiesenen Speicherblock ist undefiniert. Mit anderen Worten: Man sollte nicht davon ausgehen, dass sich der freie Speicher immer hinter den initialisierten Elementen befindet.

Siehe auch ` reserve()` und ` squeeze()`.

QString::const_iterator QString::cbegin() const

Gibt einen konstanten Iterator im STL-Stil zurück, der auf das erste Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des ` QString ` ungültig.

Siehe auch „ begin()“ und „ cend()“.

QString::const_iterator QString::cend() const

Gibt einen konstanten Iterator im STL-Stil zurück, der direkt auf das Zeichen nach dem letzten Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird beim Trennen oder bei einer Änderung von ` QString ` ungültig.

Siehe auch „ cbegin()“ und „ end()“.

void QString::chop(qsizetype n)

Entfernt die Zeichen „ n “ vom Ende der Zeichenkette.

Ist ` n ` größer oder gleich ` size()`, ist das Ergebnis eine leere Zeichenkette; ist ` n ` negativ, entspricht dies der Übergabe von Null.

Beispiel:

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

Wenn Sie Zeichen vom Anfang der Zeichenkette entfernen möchten, verwenden Sie stattdessen ` remove()`.

Siehe auch truncate(), resize(), remove() und QStringView::chop().

QString QString::chopped(qsizetype len) &&

QString QString::chopped(qsizetype len) const &

Gibt eine Zeichenkette zurück, die die Zeichen size() – len ganz links in dieser Zeichenkette enthält.

Hinweis: Das Verhalten ist undefiniert, wenn len negativ ist oder größer als size() ist.

Siehe auch endsWith(), first(), last(), sliced(), chop(), truncate() und slice().

void QString::clear()

Löscht den Inhalt der Zeichenkette und setzt sie auf null.

Siehe auch resize() und isNull().

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

Vergleicht die Zeichenfolge „ s1 “ mit der Zeichenfolge „ s2 “ und gibt eine negative Ganzzahl zurück, wenn „ s1 “ kleiner als „ s2 “ ist, eine positive Ganzzahl, wenn sie größer als „ s2 “ ist, und Null, wenn beide gleich sind.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standardeinstellung), erfolgt der Vergleich unter Berücksichtigung der Groß-/Kleinschreibung; andernfalls erfolgt der Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung.

Der Vergleich unter Berücksichtigung der Groß-/Kleinschreibung basiert ausschließlich auf den numerischen Unicode-Werten der Zeichen und ist sehr schnell, entspricht jedoch nicht den Erwartungen eines Menschen. Denken Sie beispielsweise an das Sortieren von für den Benutzer sichtbaren Zeichenketten mit ` 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

Hinweis: Diese Funktion behandelt Null-Zeichenketten genauso wie leere Zeichenketten; weitere Details finden Sie unter Distinction Between Null and Empty Strings.

Siehe auch ` operator==()`, ` operator<()`, ` operator>()` und ` Comparing Strings`.

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

Führt einen Vergleich mit „ ch “ durch, wobei die Einstellung zur Groß-/Kleinschreibung „ cs “ verwendet wird.

Diese Funktion überlädt ` QString::compare()`.

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

Entspricht „compare(*this, other, cs)“.

Diese Funktion überlädt die Funktion ` QString::compare()`.

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

Führt einen Vergleich mit „ s “ durch, wobei die Einstellung zur Groß-/Kleinschreibung „ cs “ verwendet wird.

Diese Funktion überlädt die Funktion ` QString::compare()`.

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

Vergleicht diese Zeichenkette lexikalisch mit der Zeichenkette other und gibt eine negative Ganzzahl zurück, wenn diese Zeichenkette kleiner als other ist, eine positive Ganzzahl, wenn sie größer als other ist, und Null, wenn beide Zeichenketten gleich sind.

Entspricht compare(*this, other, cs).

Diese Funktion überlädt QString::compare().

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

Führt einen Vergleich zwischen „ s1 “ und „ s2 “ durch, wobei die Einstellung zur Groß-/Kleinschreibung „ cs “ verwendet wird.

Diese Funktion überlädt die Funktion ` QString::compare()`.

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

Diese Funktion überlädt die Funktion „ QString::compare()“.

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

Führt einen Vergleich zwischen „ s1 “ und „ s2 “ durch, wobei die Einstellung zur Groß-/Kleinschreibung „ cs “ verwendet wird.

Diese Funktion überlädt die Funktion ` QString::compare()`.

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

Diese Funktion überlädt die Funktion „ QString::compare()“.

QString::const_iterator QString::constBegin() const

Gibt einen konstanten Iterator im STL-Stil zurück, der auf das erste Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung von ` QString ` ungültig.

Siehe auch „ begin()“ und „ constEnd()“.

const QChar *QString::constData() const

Gibt einen Zeiger auf die in ` QString` gespeicherten Daten zurück. Mit diesem Zeiger kann auf die Zeichen zugegriffen werden, aus denen die Zeichenkette besteht.

Beachten Sie, dass der Zeiger nur so lange gültig bleibt, wie die Zeichenkette nicht verändert wird.

Hinweis: Die zurückgegebene Zeichenkette ist möglicherweise nicht mit „\0 “ abgeschlossen. Verwenden Sie „ size()“, um die Länge des Arrays zu ermitteln.

Siehe auch ` data()`, ` operator[]()` und ` fromRawData()`.

QString::const_iterator QString::constEnd() const

Gibt einen konstanten Iterator im STL-Stil zurück, der direkt auf das Zeichen nach dem letzten Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des ` QString ` ungültig.

Siehe auch „ constBegin()“ und „ end()“.

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

Gibt „ true “ zurück, wenn der reguläre Ausdruck „ re “ an einer beliebigen Stelle in dieser Zeichenkette übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Wenn die Übereinstimmung erfolgreich ist und rmatch nicht nullptr ist, werden die Ergebnisse der Übereinstimmung außerdem in das QRegularExpressionMatch -Objekt geschrieben, auf das rmatch verweist.

Siehe auch QRegularExpression::match().

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

Gibt „ true “ zurück, wenn diese Zeichenfolge die Zeichenfolge „ str “ enthält; andernfalls wird „ false “ zurückgegeben.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Siehe auch indexOf() und count().

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

Gibt „ true “ zurück, wenn diese Zeichenkette das Zeichen „ ch “ enthält; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::contains()`.

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

Gibt „ true “ zurück, wenn diese Zeichenkette eine Instanz der Latin-1-Zeichenkette „ str “ enthält; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt QString::contains().

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

Gibt „ true “ zurück, wenn diese Zeichenfolge die Zeichenfolge „view str “ enthält; andernfalls wird „ false “ zurückgegeben.

Ist „ cs “ gleich „ Qt::CaseSensitive “ (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Diese Funktion überlädt QString::contains().

Siehe auch „ indexOf()“ und „ count()“.

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

Gibt die Anzahl der (möglicherweise überlappenden) Vorkommen der Zeichenfolge „ str “ in dieser Zeichenfolge zurück.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standardeinstellung), wird bei der Suche die Groß-/Kleinschreibung berücksichtigt; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Siehe auch „ contains()“ und „ indexOf()“.

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

Gibt zurück, wie oft der reguläre Ausdruck „ re “ in der Zeichenkette vorkommt.

Aus historischen Gründen zählt diese Funktion überlappende Übereinstimmungen, sodass es im folgenden Beispiel vier Vorkommen von „ana“ oder „ama“ gibt:

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

Dieses Verhalten unterscheidet sich von der einfachen Durchlaufung der Übereinstimmungen in der Zeichenkette mit ` QRegularExpressionMatchIterator`.

Diese Funktion überlädt ` QString::count()`.

Siehe auch ` QRegularExpression::globalMatch()`.

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

Gibt die Anzahl der Vorkommen des Zeichen ch s in der Zeichenkette zurück.

Ist ` cs ` auf ` Qt::CaseSensitive ` gesetzt (Standard), wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.

Diese Funktion überlädt die Funktion ` QString::count()`.

Siehe auch ` contains()` und ` indexOf()`.

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

Gibt die Anzahl der (möglicherweise überlappenden) Vorkommen der Zeichenfolge „ str “ in dieser Zeichenfolge zurück.

Ist „ cs “ auf „ Qt::CaseSensitive “ gesetzt (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Diese Funktion überlädt „ QString::count()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ contains()“ und „ indexOf()“.

QString::const_reverse_iterator QString::crbegin() const

Gibt einen konstanten Reverse-Iterator im STL-Stil zurück, der auf das erste Zeichen der Zeichenkette in umgekehrter Reihenfolge verweist.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung von ` QString ` ungültig.

Siehe auch „ begin()“, „ rbegin()“ und „ rend()“.

QString::const_reverse_iterator QString::crend() const

Gibt einen konstanen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das Zeichen nach dem letzten Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QString “ ungültig.

Siehe auch „ end()“, „ rend()“ und „ rbegin()“.

QChar *QString::data()

Gibt einen Zeiger auf die in ` QString` gespeicherten Daten zurück. Mit diesem Zeiger kann auf die Zeichen, aus denen die Zeichenkette besteht, zugegriffen und diese geändert werden.

Im Gegensatz zu ` constData()` und ` unicode()` werden die zurückgegebenen Daten immer mit einem `'\0'` abgeschlossen.

Beispiel:

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

Beachten Sie, dass der Zeiger nur so lange gültig bleibt, wie die Zeichenkette nicht auf andere Weise verändert wird. Für den schreibgeschützten Zugriff ist ` constData()` schneller, da dabei niemals eine tiefe Kopie erstellt wird.

Siehe auch ` constData()` und ` operator[]()`.

const QChar *QString::data() const

Hinweis: Die zurückgegebene Zeichenkette ist möglicherweise nicht mit „\0 “ abgeschlossen. Verwenden Sie „ size()“, um die Länge des Arrays zu ermitteln.

Dies ist eine überladene Funktion.

Siehe auch ` fromRawData()`.

void QString::detach()

Stellt sicher, dass die Daten dieser Zeichenfolge nicht mehr mit anderen Instanzen geteilt werden.

QString::iterator QString::end()

Gibt einen Iterator im STL-Stil zurück, der direkt auf das Zeichen nach dem letzten Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung des ` QString ` ungültig.

Siehe auch ` begin()` und ` constEnd()`.

QString::const_iterator QString::end() const

Diese Funktion überlädt die Funktion „ QString::end()“.

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

Gibt „ true “ zurück, wenn die Zeichenfolge mit „ s “ endet; andernfalls wird „ false “ zurückgegeben.

Wenn cs den Wert Qt::CaseSensitive hat (Standard), wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden; andernfalls wird die Groß- und Kleinschreibung nicht berücksichtigt.

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

Siehe auch startsWith().

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

Gibt „ true “ zurück, wenn die Zeichenkette mit „ c “ endet; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion „ QString::endsWith()“.

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

Diese Funktion überlädt die Funktion „ QString::endsWith()“.

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

Gibt „ true “ zurück, wenn die Zeichenfolge mit der Zeichenfolge „ str “ endet; andernfalls wird „ false “ zurückgegeben.

Ist cs gleich Qt::CaseSensitive (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Diese Funktion überlädt die Funktion ` QString::endsWith()`.

Siehe auch ` startsWith()`.

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

Entfernt aus der Zeichenkette die Zeichen im halboffenen Bereich [ first, last ). Gibt einen Iterator auf das Zeichen unmittelbar nach dem zuletzt gelöschten Zeichen zurück (d. h. das Zeichen, auf das vor dem Löschen mit „ last “ verwiesen wurde).

Diese Funktion wurde in Qt 6.1 eingeführt.

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

Entfernt das durch ` it ` bezeichnete Zeichen aus der Zeichenkette. Gibt einen Iterator auf das Zeichen zurück, das unmittelbar auf das gelöschte Zeichen folgt.

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

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Setzt jedes Zeichen in der Zeichenkette auf das Zeichen ch. Wenn size ungleich -1 (Standard) ist, wird die Zeichenkette zuvor auf size angepasst.

Beispiel:

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

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

Siehe auch resize().

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

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

Gibt eine Zeichenkette zurück, die die ersten n Zeichen dieser Zeichenkette enthält (d. h. vom Anfang dieser Zeichenkette bis einschließlich des Elements an der Indexposition n, dieses jedoch nicht mit eingeschlossen).

Hinweis: Das Verhalten ist undefiniert, wenn n < 0 oder n > size().

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch last(), sliced(), startsWith(), chopped(), chop(), truncate() und slice().

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

Erstellt ein neues „ QString “, das eine Kopie des CFString „ string “ enthält.

Hinweis: Diese Funktion ist nur unter macOS und iOS verfügbar.

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

Konvertiert die ECMAScript-Zeichenkette „ jsString “ in „ QString “. Das Verhalten ist undefiniert, wenn der übergebene Parameter keine Zeichenkette ist.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch ` toEcmaString()`.

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

Gibt ein ` QString ` zurück, das mit den ersten ` size ` Zeichen der Latin-1-Zeichenkette ` str` initialisiert wurde.

Ist size gleich -1, wird stattdessen strlen(str) verwendet.

Siehe auch toLatin1(), fromUtf8() und fromLocal8Bit().

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

Gibt ein ` QString ` zurück, das mit der Latin-1-Zeichenkette ` str` initialisiert ist.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Gibt ein ` QString ` zurück, das mit der Latin-1-Zeichenkette ` str` initialisiert ist.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert. Dieses Verhalten unterscheidet sich von Qt 5.x.

Dies ist eine überladene Funktion.

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

Gibt ein ` QString ` zurück, das mit den ersten ` size ` Zeichen der 8-Bit-Zeichenkette ` str` initialisiert wurde.

Ist size gleich -1, wird stattdessen strlen(str) verwendet.

Auf Unix-Systemen entspricht dies fromUtf8(). Beachten Sie, dass diese Funktion auf Apple-Systemen NSString.defaultCStringEncoding oder CFStringGetSystemEncoding() nicht berücksichtigt, da diese Funktionen typischerweise die veraltete Kodierung „Western (Mac OS Roman)“ zurückgeben, die auf modernen Apple-Betriebssystemen nicht verwendet werden sollte. Unter Windows wird die aktuelle Codepage des Systems verwendet.

Siehe auch ` toLocal8Bit()`, ` fromLatin1()` und ` fromUtf8()`.

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

Gibt ein ` QString ` zurück, das mit der 8-Bit-Zeichenkette ` str` initialisiert wurde.

Auf Unix-Systemen entspricht dies fromUtf8(). Beachten Sie, dass diese Funktion auf Apple-Systemen NSString.defaultCStringEncoding oder CFStringGetSystemEncoding() nicht berücksichtigt, da diese Funktionen in der Regel die veraltete Kodierung „Western (Mac OS Roman)“ zurückgeben, die auf modernen Apple-Betriebssystemen nicht verwendet werden sollte. Unter Windows wird die aktuelle Codepage des Systems verwendet.

Hinweis: Alle Null-Bytes (‚\0 ‘) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Gibt ein ` QString ` zurück, das mit der 8-Bit-Zeichenkette ` str` initialisiert wurde.

Auf Unix-Systemen entspricht dies fromUtf8(). Beachten Sie, dass diese Funktion auf Apple-Systemen NSString.defaultCStringEncoding oder CFStringGetSystemEncoding() nicht berücksichtigt, da diese Funktionen in der Regel die veraltete Kodierung „Western (Mac OS Roman)“ zurückgeben, die auf modernen Apple-Betriebssystemen nicht verwendet werden sollte. Unter Windows wird die aktuelle Codepage des Systems verwendet.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert. Dieses Verhalten unterscheidet sich von Qt 5.x.

Dies ist eine überladene Funktion.

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

Erstellt ein neues „ QString “, das eine Kopie des „ string “-NSString enthält.

Hinweis: Diese Funktion ist nur unter macOS und iOS verfügbar.

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

Erstellt eine „ QString “, die die ersten „ size “ Unicode-Zeichen aus dem Array „ unicode “ verwendet. Die Daten in „ unicode “ werden nicht kopiert. Der Aufrufer muss gewährleisten können, dass „ unicode “ nicht gelöscht oder verändert wird, solange „ QString “ (oder eine unveränderte Kopie davon) existiert.

Jeder Versuch, die Datei „ QString “ oder Kopien davon zu ändern, führt dazu, dass eine tiefe Kopie der Daten erstellt wird, wodurch sichergestellt wird, dass die Rohdaten nicht verändert werden.

Hier ist ein Beispiel dafür, wie wir eine ` QRegularExpression ` auf Rohdaten im Speicher anwenden können, ohne die Daten in eine ` QString` kopieren zu müssen:

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

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

Warnung: Eine mit `fromRawData()` erstellte Zeichenkette wird nicht mit einem `'\0'` abgeschlossen, es sei denn, die Rohdaten enthalten an der Position ` size` ein `'\0`-Zeichen. Das bedeutet, dass ` unicode()` keine mit `'\0'` abgeschlossene Zeichenkette zurückgibt (während `utf16()` dies tut, allerdings auf Kosten des Kopierens der Rohdaten).

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch fromUtf16(), setRawData(), data(), constData(), nullTerminate() und nullTerminated().

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

Dies ist eine überladene Funktion.

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

Gibt eine Kopie der Zeichenkette „ str “ zurück. Es wird davon ausgegangen, dass die angegebene Zeichenkette in UTF-8 kodiert ist, und sie wird mithilfe der Funktion „ fromUtf8()“ in „ QString “ konvertiert.

Siehe auch „ fromLatin1()“, „ fromLocal8Bit()“, „ fromUtf8()“ und „ QByteArray::fromStdString()“.

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

Gibt eine Kopie der Zeichenkette „ str “ zurück. Es wird davon ausgegangen, dass die angegebene Zeichenkette in UTF-16 kodiert ist, und sie wird mithilfe der Funktion „ fromUtf16()“ in „ QString “ konvertiert.

Siehe auch „ fromUtf16()“, „ fromStdWString()“ und „ fromStdU32String()“.

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

Gibt eine Kopie der Zeichenkette „ str “ zurück. Es wird davon ausgegangen, dass die angegebene Zeichenkette in UTF-32 kodiert ist, und sie wird mithilfe der Funktion „ fromUcs4()“ in „ QString “ konvertiert.

Siehe auch „ fromUcs4()“, „ fromStdWString()“ und „ fromStdU16String()“.

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

Gibt eine Kopie der Zeichenkette „ str “ zurück. Es wird davon ausgegangen, dass die angegebene Zeichenkette in UTF-16 kodiert ist, wenn die Größe von `wchar_t` 2 Byte beträgt (z. B. unter Windows), und in UCS-4, wenn die Größe von `wchar_t` 4 Byte beträgt (die meisten Unix-Systeme).

Siehe auch fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4(), fromStdU16String() und fromStdU32String().

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

Gibt ein ` QString ` zurück, das mit den ersten ` size ` Zeichen der Unicode-Zeichenkette ` unicode ` (kodiert als UTF-32) initialisiert wurde.

Ist size gleich -1 (Standard), muss unicode mit „\0 “ enden.

Siehe auch toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray() und fromStdU32String().

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

Gibt ein ` QString ` zurück, das mit den ersten ` size ` Bytes der UTF-8-Zeichenkette ` str` initialisiert wurde.

Ist size gleich -1, wird stattdessen strlen(str) verwendet.

UTF-8 ist ein Unicode-Codec und kann alle Zeichen in einer Unicode-Zeichenkette wie QString darstellen. Allerdings sind bei UTF-8 ungültige Sequenzen möglich; werden solche gefunden, werden sie durch ein oder mehrere „Ersatzzeichen“ ersetzt oder unterdrückt. Dazu gehören Nicht-Unicode-Sequenzen, Nicht-Zeichen, überlange Sequenzen oder in UTF-8 kodierte Surrogat-Codepunkte.

Diese Funktion kann verwendet werden, um eingehende Daten inkrementell zu verarbeiten, solange alle UTF-8-Zeichen innerhalb der eingehenden Daten abgeschlossen sind. Alle nicht abgeschlossenen Zeichen am Ende der Zeichenkette werden ersetzt oder unterdrückt. Für eine zustandsbehaftete Dekodierung verwenden Sie bitte QStringDecoder.

Siehe auch toUtf8(), fromLatin1() und fromLocal8Bit().

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

Gibt ein ` QString ` zurück, das mit der UTF-8-Zeichenkette ` str` initialisiert ist.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Gibt ein ` QString ` zurück, das mit der UTF-8-Zeichenkette ` str` initialisiert ist.

Hinweis: Alle Null-Bytes („\0 “) im Byte-Array werden in diese Zeichenkette aufgenommenund in Unicode-Nullzeichen (U+0000) konvertiert. Dieses Verhalten unterscheidet sich von Qt 5.x.

Dies ist eine überladene Funktion.

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

Diese Überladung ist nur verfügbar, wenn im C++20-Modus kompiliert wird.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.1 eingeführt.

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

Diese Überladung ist nur verfügbar, wenn im C++20-Modus kompiliert wird.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Gibt einen „ QString “ zurück, der mit den ersten „ size “ Zeichen der Unicode-Zeichenkette „ unicode “ (in ISO-10646-UTF-16 kodiert) initialisiert wurde.

Ist size gleich -1 (Standard), muss unicode mit '\0' enden.

Diese Funktion prüft auf eine Byte-Order-Markierung (BOM). Fehlt diese, wird die Byte-Reihenfolge des Hosts angenommen.

Diese Funktion ist im Vergleich zu den anderen Unicode-Konvertierungen langsam. Verwenden Sie nach Möglichkeit „ QString “ (const QChar *, qsizetype) oder „ QString “ (const QChar *).

QString Erstellt eine tiefe Kopie der Unicode-Daten.

Siehe auch „ utf16()“, „ setUtf16()“ und „ fromStdU16String()“.

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

Liest die ersten size Codeeinheiten des Arrays „ wchar_t “, auf dessen Anfang „ string “ verweist, konvertiert sie in Unicode und gibt das Ergebnis als „ QString “ zurück. Es wird davon ausgegangen, dass die von „ wchar_t “ verwendete Kodierung UTF-32 ist, wenn die Größe des Typs vier Byte beträgt, bzw. UTF-16, wenn die Größe zwei Byte beträgt.

Ist size gleich -1 (Standard), muss die string mit „\0 “ abgeschlossen sein.

Siehe auch fromUtf16(), fromLatin1(), fromLocal8Bit(), fromUtf8(), fromUcs4() und fromStdWString().

QChar &QString::front()

Gibt eine Referenz auf das erste Zeichen der Zeichenkette zurück. Entspricht „ operator[](0) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für eine leere Zeichenkette führt zu undefiniertem Verhalten.

Siehe auch back(), at() und operator[]().

QChar QString::front() const

Gibt das erste Zeichen der Zeichenkette zurück. Entspricht „ at(0) “.

Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.

Warnung: Der Aufruf dieser Funktion für eine leere Zeichenkette führt zu undefiniertem Verhalten.

Siehe auch „ back()“, „ at()“ und „ operator[]()“.

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

Gibt die Indexposition des ersten Vorkommens der von „ str “ in dieser Zeichenkette erkannten Latin-1-Zeichenkette zurück, wobei die Suche ausgehend von der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Siehe auch lastIndexOf(), contains() und count().

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

Gibt die Indexposition der ersten Übereinstimmung des regulären Ausdrucks „ re “ in der Zeichenkette zurück, wobei die Suche ab der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn „ re “ an keiner Stelle übereinstimmt.

Wenn die Suche erfolgreich ist und rmatch nicht mit nullptr übereinstimmt, werden die Suchergebnisse zudem in das QRegularExpressionMatch -Objekt geschrieben, auf das rmatch verweist.

Beispiel:

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

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

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

Gibt die Indexposition des ersten Vorkommens der Zeichenkette „ str “ in dieser Zeichenkette zurück, wobei die Suche ab der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Wenn „ cs “ gleich „ Qt::CaseSensitive “ ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Ist from gleich -1, beginnt die Suche beim letzten Zeichen; ist es gleich -2, beim vorletzten Zeichen und so weiter.

Siehe auch lastIndexOf(), contains() und count().

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

Gibt die Indexposition des ersten Vorkommens des Zeichens „ ch “ in dieser Zeichenkette zurück, wobei die Suche ab der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn „ ch “ nicht gefunden wird.

Diese Funktion überlädt die Funktion ` QString::indexOf()`.

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

Gibt die Indexposition des ersten Vorkommens der Zeichenfolge „view str “ in dieser Zeichenfolge zurück, wobei die Suche beginnend bei der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Ist cs gleich Qt::CaseSensitive (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Ist from gleich -1, beginnt die Suche beim letzten Zeichen; ist es gleich -2, beim vorletzten Zeichen und so weiter.

Diese Funktion überlädt die Funktion ` QString::indexOf()`.

Siehe auch „ QStringView::indexOf()“, „ lastIndexOf()“, „ contains()“ und „ count()“.

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

Fügt die Zeichenkette „ str “ an der angegebenen Position „ position “ ein und gibt eine Referenz auf diese Zeichenkette zurück.

Beispiel:

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

Diese Zeichenkette wird vergrößert, um die Einfügung aufzunehmen. Liegt „ position “ jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen Index „ position “ zu erreichen, gefolgt von „ str “.

Siehe auch append(), prepend(), replace() und remove().

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

Fügt „ ch “ an der angegebenen Position „ position “ in die Zeichenkette ein.

Die Zeichenkette wird entsprechend der Einfügung verlängert. Liegt position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen position zu erreichen, gefolgt von ch.

Diese Funktion überlädt die Funktion ` QString::insert()`.

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

Fügt die von str angezeigte Latin-1-Zeichenkette an der angegebenen Position position ein.

Diese Zeichenkette wird zur Aufnahme der Einfügung erweitert. Befindet sich position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen position zu erreichen, gefolgt von str.

Diese Funktion überlädt die Funktion ` QString::insert()`.

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

Fügt die Zeichenkette „ str “ an der angegebenen Position „ position “ ein und gibt eine Referenz auf diese Zeichenkette zurück.

Die Zeichenkette wird entsprechend der Einfügung verlängert. Liegt „ position “ jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen Index „ position “ zu erreichen, gefolgt von „ str “.

Diese Funktion überlädt „ QString::insert()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Fügt die UTF-8-Zeichenkette „ str “ an der angegebenen Position „ position “ ein.

Hinweis: Das Einfügen von UTF-8-kodierten Zeichenfolgen mit variabler Breite ist konzeptionell langsamer als das Einfügen von Zeichenfolgen mit fester Breite wie UTF-16 (QStringView) oder Latin-1 (QLatin1StringView) und sollte daher nur sparsam eingesetzt werden.

Diese Zeichenkette wird vergrößert, um die Einfügung aufzunehmen. Liegt position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diese position zu erreichen, gefolgt von str.

Diese Funktion überlädt ` QString::insert()`.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Interpretiert den Inhalt von str als UTF-8, fügt die darin kodierte Unicode-Zeichenkette an der angegebenen Stelle position ein und gibt eine Referenz auf diese Zeichenkette zurück.

Diese Zeichenkette wird entsprechend der Einfügung verlängert. Liegt position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen position zu erreichen, gefolgt von str.

Diese Funktion ist nicht verfügbar, wenn ` QT_NO_CAST_FROM_ASCII ` definiert ist.

Diese Funktion überlädt ` QString::insert()`.

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

Fügt die C-Zeichenkette str an der angegebenen Position position ein und gibt eine Referenz auf diese Zeichenkette zurück.

Diese Zeichenkette wird entsprechend der Einfügung verlängert. Liegt position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diesen position zu erreichen, gefolgt von str.

Diese Funktion ist nicht verfügbar, wenn ` QT_NO_CAST_FROM_ASCII ` definiert ist.

Diese Funktion überlädt ` QString::insert()`.

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

Fügt die ersten size Zeichen des Arrays QChar unicode an der angegebenen Position position in die Zeichenkette ein.

Die Zeichenkette wird entsprechend erweitert, um Platz für die Einfügung zu schaffen. Liegt position jenseits des Endes der Zeichenkette, werden Leerzeichen an die Zeichenkette angehängt, um diese position zu erreichen, gefolgt von size Zeichen aus dem Array QChar unicode .

Diese Funktion überlädt „ QString::insert()“.

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

Gibt „ true “ zurück, wenn die Zeichenfolge keine Zeichen enthält; andernfalls wird „ false “ zurückgegeben.

Beispiel:

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

Siehe auch size().

bool QString::isLower() const

Gibt „ true “ zurück, wenn die Zeichenkette aus Kleinbuchstaben besteht, d. h., wenn sie mit ihrer „ toLower()“-Umwandlung identisch ist.

Beachten Sie, dass dies nicht bedeutet, dass die Zeichenkette keine Großbuchstaben enthält (einige Großbuchstaben haben keine Kleinbuchstaben-Entsprechung; sie werden von toLower() unverändert gelassen). Weitere Informationen finden Sie im Unicode-Standard, Abschnitt 3.13.

Siehe auch QChar::toLower() und isUpper().

[constexpr] bool QString::isNull() const

Gibt „ true “ zurück, wenn diese Zeichenkette null ist; andernfalls wird „ false “ zurückgegeben.

Beispiel:

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

Qt unterscheidet aus historischen Gründen zwischen Null-Zeichenketten und leeren Zeichenketten. Für die meisten Anwendungen ist es entscheidend, ob eine Zeichenkette Daten enthält oder nicht, und dies lässt sich mit der Funktion ` isEmpty()` feststellen.

Siehe auch ` isEmpty()`.

bool QString::isRightToLeft() const

Gibt „ true “ zurück, wenn die Zeichenkette von rechts nach links gelesen wird.

Siehe auch QStringView::isRightToLeft().

bool QString::isUpper() const

Gibt „ true “ zurück, wenn die Zeichenkette in Großbuchstaben geschrieben ist, d. h., wenn sie mit ihrer „ toUpper()“-Umwandlung identisch ist.

Beachten Sie, dass dies nicht bedeutet, dass die Zeichenkette keine Kleinbuchstaben enthält (einige Kleinbuchstaben haben keine Großbuchstaben-Folding; sie bleiben durch toUpper() unverändert). Weitere Informationen finden Sie im Unicode-Standard, Abschnitt 3.13.

Siehe auch QChar::toUpper() und isLower().

[noexcept] bool QString::isValidUtf16() const

Gibt „ true “ zurück, wenn die Zeichenkette gültige, UTF-16-kodierte Daten enthält, andernfalls „ false “.

Beachten Sie, dass diese Funktion keine spezielle Validierung der Daten durchführt; sie prüft lediglich, ob diese erfolgreich aus UTF-16 dekodiert werden können. Es wird davon ausgegangen, dass die Daten in der Host-Byte-Reihenfolge vorliegen; das Vorhandensein eines BOM ist irrelevant.

Siehe auch QStringView::isValidUtf16().

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

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

Gibt die Zeichenkette zurück, die die letzten n Zeichen dieser Zeichenkette enthält.

Hinweis: Das Verhalten ist undefiniert, wenn „ n “ < 0 oder „ n “ > „ size “ () ist.

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch ` first()`, ` sliced()`, ` endsWith()`, ` chopped()`, ` chop()`, ` truncate()` und ` slice()`.

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

Gibt die Indexposition der letzten Übereinstimmung des regulären Ausdrucks „ re “ in der Zeichenkette zurück, die vor der Indexposition „ from “ beginnt.

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Gibt -1 zurück, wenn „ re “ an keiner Stelle übereinstimmt.

Ist die Suche erfolgreich und ist „ rmatch “ nicht „ nullptr “, werden die Ergebnisse der Suche zudem in das „ QRegularExpressionMatch “-Objekt geschrieben, auf das „ rmatch “ verweist.

Beispiel:

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

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

Hinweis: Aufgrund der Funktionsweise des Algorithmus für den Abgleich mit regulären Ausdrücken führt diese Funktion den Abgleich tatsächlich wiederholt vom Anfang der Zeichenkette aus durch, bis die Position ` from ` erreicht ist.

Hinweis: Bei der Suche nach einem regulären Ausdruck „ re “, der möglicherweise mit 0 Zeichen übereinstimmt, wird die Übereinstimmung am Ende der Daten durch einen negativen „ from “-Wert von der Suche ausgeschlossen, obwohl „ -1 “ normalerweise so interpretiert wird, dass die Suche vom Ende der Zeichenkette aus erfolgt: Die Übereinstimmung am Ende befindet sich nach dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche leere Übereinstimmung am Ende einzubeziehen, geben Sie entweder einen positiven Wert für ` from ` an oder lassen Sie den Parameter ` from ` ganz weg.

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

Gibt die Indexposition des letzten Vorkommens der Zeichenkette „ str “ in dieser Zeichenkette zurück, wobei die Suche rückwärts ab der Indexposition „ from “ erfolgt.

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Ist ` cs ` auf ` Qt::CaseSensitive ` gesetzt (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls erfolgt die Suche ohne Berücksichtigung der Groß-/Kleinschreibung.

Beispiel:

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

Hinweis: Bei der Suche nach einem „ str “ der Länge 0 wird die Übereinstimmung am Ende der Daten durch einen negativen „ from “-Wert von der Suche ausgeschlossen, obwohl „ -1 “ normalerweise so verstanden wird, dass die Suche vom Ende der Zeichenkette aus erfolgt: Die Übereinstimmung am Ende befindet sich hinter dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche leere Übereinstimmung am Ende einzubeziehen, geben Sie entweder einen positiven Wert für „ from “ an oder lassen Sie den Parameter „ from “ ganz weg.

Siehe auch indexOf(), contains() und count().

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

Diese Funktion überlädt die Funktion „ QString::lastIndexOf()“.

Diese Funktion wurde in Qt 6.3 eingeführt.

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

Gibt die Indexposition des letzten Vorkommens der Zeichenfolge „ str “ in dieser Zeichenfolge zurück. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Wenn „ cs “ gleich „ Qt::CaseSensitive “ ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Diese Funktion überlädt „ QString::lastIndexOf()“.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch indexOf(), contains() und count().

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

Gibt die Indexposition des letzten Vorkommens der Zeichenfolge „view str “ in dieser Zeichenfolge zurück. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Diese Funktion überlädt „ QString::lastIndexOf()“.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch indexOf(), contains() und count().

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

Gibt die Indexposition der letzten Übereinstimmung des regulären Ausdrucks „ re “ in der Zeichenkette zurück. Gibt -1 zurück, wenn „ re “ an keiner Stelle übereinstimmt.

Wenn die Suche erfolgreich ist und „ rmatch “ nicht mit „ nullptr “ übereinstimmt, werden die Suchergebnisse zusätzlich in das Objekt „ QRegularExpressionMatch “ geschrieben, auf das „ rmatch “ verweist.

Beispiel:

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

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

Hinweis: Aufgrund der Funktionsweise des Algorithmus für den Abgleich mit regulären Ausdrücken führt diese Funktion den Abgleich tatsächlich wiederholt vom Anfang der Zeichenkette bis zum Ende der Zeichenkette durch.

Diese Funktion überlädt ` QString::lastIndexOf()`.

Diese Funktion wurde in Qt 6.2 eingeführt.

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

Gibt die Indexposition des letzten Vorkommens der Zeichenfolge „ str “ in dieser Zeichenfolge zurück. Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Diese Funktion überlädt „ QString::lastIndexOf()“.

Diese Funktion wurde in Qt 6.2 eingeführt.

Siehe auch indexOf(), contains() und count().

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

Gibt die Indexposition des letzten Vorkommens des Zeichens „ ch “ in dieser Zeichenkette zurück, wobei die Suche rückwärts ab der Indexposition „ from “ erfolgt.

Diese Funktion überlädt die Funktion ` QString::lastIndexOf()`.

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

Gibt die Indexposition des letzten Vorkommens der von ` str ` in dieser Zeichenkette erkannten Latin-1-Zeichenkette zurück, wobei die Suche rückwärts ab der Indexposition ` from` erfolgt.

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Ist „ cs “ auf „ Qt::CaseSensitive “ gesetzt (Standard), wird bei der Suche die Groß-/Kleinschreibung berücksichtigt; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Beispiel:

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

Hinweis: Bei der Suche nach einer „ str “ der Länge 0 wird die Übereinstimmung am Ende der Daten durch einen negativen „ from “-Wert von der Suche ausgeschlossen, obwohl „ -1 “ normalerweise als Suche vom Ende der Zeichenkette aus verstanden wird: Die Übereinstimmung am Ende befindet sich hinter dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche leere Übereinstimmung am Ende einzubeziehen, geben Sie entweder einen positiven Wert für „ from “ an oder lassen Sie den Parameter „ from “ ganz weg.

Diese Funktion überlädt ` QString::lastIndexOf()`.

Siehe auch indexOf(), contains() und count().

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

Gibt die Indexposition des letzten Vorkommens der Zeichenkette „ str “ in dieser Zeichenkette zurück, wobei rückwärts ab der Indexposition „ from “ gesucht wird.

Ist from gleich -1, beginnt die Suche am letzten Zeichen; ist es gleich -2, am vorletzten Zeichen und so weiter.

Gibt -1 zurück, wenn „ str “ nicht gefunden wird.

Ist „ cs “ gleich „ Qt::CaseSensitive “ (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Hinweis: Bei der Suche nach einem „ str “ der Länge 0 wird die Übereinstimmung am Ende der Daten durch einen negativen Wert für „ from “ von der Suche ausgeschlossen, obwohl „ -1 “ normalerweise so interpretiert wird, dass vom Ende der Zeichenkette aus gesucht wird: Die Übereinstimmung am Ende befindet sich hinter dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche leere Übereinstimmung am Ende einzubeziehen, geben Sie entweder einen positiven Wert für „ from “ an oder lassen Sie den Parameter „ from “ ganz weg.

Diese Funktion überlädt „ QString::lastIndexOf()“.

Siehe auch indexOf(), contains() und count().

QString QString::left(qsizetype n) &&

QString QString::left(qsizetype n) const &

Gibt eine Teilzeichenkette zurück, die die n Zeichen ganz links in dieser Zeichenkette enthält (d. h. vom Anfang dieser Zeichenkette bis einschließlich des Elements an der Indexposition n).

Wenn Sie wissen, dass n nicht außerhalb des zulässigen Bereichs liegen kann, verwenden Sie in neuem Code stattdessen first(), da dies schneller ist.

Die gesamte Zeichenkette wird zurückgegeben, wenn ` n ` größer oder gleich ` size()` ist oder kleiner als Null.

Siehe auch first(), last(), startsWith(), chopped(), chop() und truncate().

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

Gibt eine Zeichenkette der Größe width zurück, die diese Zeichenkette enthält, ergänzt durch das Zeichen fill.

Wenn „ truncate “ gleich „ false “ ist und die Anzahl der Zeichen in der Zeichenkette gemäß „ size()“ größer als „ width “ ist, dann ist die zurückgegebene Zeichenkette eine Kopie der ursprünglichen Zeichenkette.

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

Wenn ` truncate ` gleich ` true ` ist und die ` size()` der Zeichenkette größer als ` width` ist, werden alle Zeichen in einer Kopie der Zeichenkette nach der Position ` width ` entfernt und die Kopie zurückgegeben.

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

Siehe auch ` rightJustified()`.

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

Gibt die Anzahl der Zeichen in dieser Zeichenkette zurück. Entspricht „ size()“.

Siehe auch resize().

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

Vergleicht s1 mit s2 und gibt eine ganze Zahl kleiner als, gleich oder größer als Null zurück, wenn s1 kleiner als, gleich oder größer als s2 ist.

Der Vergleich erfolgt lokal- und plattformabhängig. Verwenden Sie diese Funktion, um dem Benutzer sortierte Listen von Zeichenfolgen anzuzeigen.

Siehe auch compare(), QLocale und Comparing Strings.

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

Vergleicht diese Zeichenkette mit der Zeichenkette „ other “ und gibt eine ganze Zahl zurück, die kleiner als, gleich oder größer als Null ist, je nachdem, ob diese Zeichenkette kleiner als, gleich oder größer als die Zeichenkette „ other “ ist.

Der Vergleich erfolgt lokal- und plattformabhängig. Verwenden Sie diese Funktion, um dem Benutzer sortierte Listen von Zeichenfolgen anzuzeigen.

Entspricht ` localeAwareCompare(*this, other)`.

Diese Funktion überlädt „ QString::localeAwareCompare()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ Comparing Strings “.

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

Vergleicht diese Zeichenkette mit der Zeichenkette „ other “ und gibt eine ganze Zahl zurück, die kleiner als, gleich oder größer als Null ist, je nachdem, ob diese Zeichenkette kleiner als, gleich oder größer als die Zeichenkette „ other “ ist.

Der Vergleich erfolgt lokal- und plattformabhängig. Verwenden Sie diese Funktion, um dem Benutzer sortierte Listen von Zeichenfolgen anzuzeigen.

Entspricht „ localeAwareCompare(*this, other) “.

Diese Funktion überlädt „ QString::localeAwareCompare()“.

Siehe auch „ Comparing Strings “.

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

Vergleicht s1 mit s2 und gibt eine ganze Zahl kleiner als, gleich oder größer als Null zurück, wenn s1 kleiner als, gleich oder größer als s2 ist.

Der Vergleich erfolgt lokal- und plattformabhängig. Verwenden Sie diese Funktion, um dem Benutzer sortierte Listen von Zeichenfolgen anzuzeigen.

Diese Funktion überlädt ` QString::localeAwareCompare()`.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ Comparing Strings “.

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

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

Die Funktion gibt die maximale Anzahl an Elementen zurück, die die Zeichenkette theoretisch enthalten kann. In der Praxis kann diese Zahl jedoch deutlich geringer ausfallen, da sie durch den dem System zur Verfügung stehenden Speicher begrenzt ist.

Diese Funktionen wurden in Qt 6.8 eingeführt.

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

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

Gibt eine Zeichenkette zurück, die die Zeichen „ n “ dieser Zeichenkette enthält, beginnend mit dem angegebenen Index „ position “ bis einschließlich der Elementposition position + n.

Wenn Sie wissen, dass position und n nicht außerhalb des zulässigen Bereichs liegen können, verwenden Sie in neuem Code stattdessen sliced(), da dies schneller ist.

Gibt eine leere Zeichenkette zurück, wenn der Index „ position “ die Länge der Zeichenkette überschreitet. Wenn in der Zeichenkette, beginnend bei der angegebenen Position „ position “, weniger als „ n “ Zeichen verfügbar sind oder wenn „ n “ den Wert -1 hat (Standard), gibt die Funktion alle Zeichen zurück, die ab der angegebenen Position „ position “ verfügbar sind.

Siehe auch first(), last(), sliced(), chopped(), chop(), truncate() und slice().

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

Gibt die Zeichenkette in der angegebenen Unicode-Normalisierungs mode zurück, gemäß der im Unicode-Standard festgelegten „ version “.

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

Wenn diese Zeichenkette nicht null-terminiert ist, erstellt diese Methode eine tiefe Kopie der Daten und versieht sie mit einem Null-Terminator.

Eine Zeichenkette vom Typ ` QString ` ist standardmäßig null-terminiert. In einigen Fällen (z. B. bei Verwendung von ` fromRawData()`) endet die Zeichenkette jedoch nicht unbedingt mit einem ` \0 `-Zeichen, was beim Aufruf von Methoden, die eine null-terminierte Zeichenkette erwarten, zu Problemen führen kann.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch „ nullTerminated()“, „ fromRawData()“ und „ setRawData()“.

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

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

Gibt eine Kopie dieser Zeichenkette zurück, die immer mit einem Null-Zeichen abgeschlossen ist.

Diese Funktionen wurden in Qt 6.10 eingeführt.

Siehe auch nullTerminate(), fromRawData() und setRawData().

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

Gibt eine Zeichenfolge zurück, die der Zahl „ n “ gemäß der angegebenen Basis „ base “ entspricht.

Die Basis ist standardmäßig 10 und muss zwischen 2 und 36 liegen. Bei anderen Basen als 10 wird „ n “ als vorzeichenlose Ganzzahl behandelt.

Die Formatierung erfolgt immer gemäß „ QLocale::C “, d. h. „English/UnitedStates“. Um eine lokalisierte Zeichenfolgendarstellung einer Zahl zu erhalten, verwenden Sie „ QLocale::toString()“ mit der entsprechenden Locale.

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

Siehe auch ` setNum()`.

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

Gibt eine Zeichenfolge zurück, die die Gleitkommazahl n darstellt.

Gibt eine Zeichenkette zurück, die n darstellt und gemäß den angegebenen Formaten format und precision formatiert ist.

Bei Formaten mit einem Exponenten wird das Vorzeichen des Exponenten angezeigt und der Exponent besteht aus mindestens zwei Ziffern, wobei der Exponent bei Bedarf links mit Nullen aufgefüllt wird.

Siehe auch setNum(), QLocale::toString(), QLocale::FloatingPointPrecisionOption sowie Number formats.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Fügt die Zeichenfolge „ str “ am Anfang dieser Zeichenfolge ein und gibt eine Referenz auf diese Zeichenfolge zurück.

Dieser Vorgang ist in der Regel sehr schnell (konstante Laufzeit), da „ QString “ zusätzlichen Speicherplatz am Anfang der Zeichenkettendaten vorab reserviert, sodass die Zeichenkette wachsen kann, ohne dass jedes Mal die gesamte Zeichenkette neu zugewiesen werden muss.

Beispiel:

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

Siehe auch ` append()` und ` insert()`.

QString &QString::prepend(QChar ch)

Fügt dem String das Zeichen „ ch “ voran.

Diese Funktion überlädt die Funktion ` QString::prepend()`.

QString &QString::prepend(QLatin1StringView str)

Fügt die von ` str ` ausgewertete Latin-1-Zeichenkette an diese Zeichenkette an.

Diese Funktion überlädt die Funktion ` QString::prepend()`.

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

Fügt die Zeichenfolgenansicht „ str “ am Anfang dieser Zeichenfolge ein und gibt eine Referenz auf diese Zeichenfolge zurück.

Diese Funktion überlädt „ QString::prepend()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Fügt der UTF-8-Zeichenkette „ str “ vor.

Diese Funktion überlädt die Funktion ` QString::prepend()`.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Fügt dem String das Byte-Array „ ba “ vor. Das Byte-Array wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diese Funktion deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen die Funktion ` QObject::tr()` durchlaufen.

Diese Funktion überlädt die Funktion ` QString::prepend()`.

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

Fügt dieser Zeichenkette die Zeichenkette „ str “ vor. Der „const char“-Zeiger wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diese Funktion deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen die Funktion ` QObject::tr()` durchlaufen.

Diese Funktion überlädt „ QString::prepend()“.

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

Fügt dieser Zeichenkette die Zeichen „ len “ aus dem Array „ QChar “ str vor und gibt eine Referenz auf diese Zeichenkette zurück.

Diese Funktion überlädt die Funktion ` QString::prepend()`.

void QString::push_back(const QString &other)

Diese Funktion dient der STL-Kompatibilität und hängt die angegebene Zeichenkette „ other “ an das Ende dieser Zeichenkette an. Sie entspricht „ append(other) “.

Siehe auch ` append()`.

void QString::push_back(QChar ch)

Fügt das angegebene Zeichen „ ch “ am Ende dieser Zeichenkette an.

Dies ist eine überladene Funktion.

void QString::push_front(const QString &other)

Diese Funktion dient der STL-Kompatibilität und fügt die angegebene Zeichenfolge „ other “ am Anfang dieser Zeichenfolge ein. Sie entspricht „ prepend(other) “.

Siehe auch prepend().

void QString::push_front(QChar ch)

Fügt das angegebene Zeichen „ ch “ am Anfang dieser Zeichenkette ein.

Dies ist eine überladene Funktion.

QString::reverse_iterator QString::rbegin()

Gibt einen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge auf das erste Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei Trennung oder bei einer Änderung des „ QString “ ungültig.

Siehe auch „ begin()“, „ crbegin()“ und „ rend()“.

QString::const_reverse_iterator QString::rbegin() const

Dies ist eine überladene Funktion.

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

Entfernt alle Vorkommen des regulären Ausdrucks „ re “ aus der Zeichenkette und gibt eine Referenz auf die Zeichenkette zurück. Beispiel:

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

Durch das Entfernen von Elementen bleibt die Kapazität der Zeichenkette erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` nach der letzten Änderung der Zeichenkettengröße auf.

Siehe auch ` indexOf()`, ` lastIndexOf()` und ` replace()`.

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

Entfernt jedes Vorkommen des Zeichens „ ch “ aus dieser Zeichenkette und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standardeinstellung), wird bei der Suche die Groß-/Kleinschreibung berücksichtigt; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Beispiel:

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

Dies entspricht „ replace(ch, "", cs) “.

Das Entfernen von Elementen bewahrt die Kapazität der Zeichenkette und verringert nicht die Menge des zugewiesenen Speichers. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie „ squeeze()“ nach der letzten Änderung der Größe der Zeichenkette auf.

Siehe auch ` replace()`.

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

Entfernt alle Vorkommen der angegebenen Zeichenfolge „ str “ aus dieser Zeichenfolge und gibt eine Referenz auf diese Zeichenfolge zurück.

Wenn „ cs “ auf „ Qt::CaseSensitive “ gesetzt ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Dies entspricht der Funktion ` replace(str, "", cs)`.

Beim Entfernen von Elementen bleibt die Kapazität der Zeichenkette erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` nach der letzten Änderung der Zeichenkettengröße auf.

Siehe auch ` replace()`.

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

Entfernt Zeichen vom Typ „ n “ aus der Zeichenkette, beginnend am angegebenen Index „ position “, und gibt eine Referenz auf die Zeichenkette zurück.

Befindet sich der angegebene Index „ position “ zwar innerhalb der Zeichenkette, liegt jedoch „ position + n “ über das Ende der Zeichenkette hinaus, wird die Zeichenkette an der angegebenen Stelle „ position “ abgeschnitten.

Ist n <= 0, wird nichts geändert.

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

Das Entfernen von Elementen bewahrt die Kapazität der Zeichenkette und verringert nicht die Menge des zugewiesenen Speichers. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() nach der letzten Änderung der Zeichenkettengröße auf.

Siehe auch „ insert()“ und „ replace()“.

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

Entfernt alle Vorkommen der durch str interpretierten angegebenen Latin-1-Zeichenkette aus dieser Zeichenkette und gibt eine Referenz auf diese Zeichenkette zurück.

Ist ` cs ` auf ` Qt::CaseSensitive ` gesetzt (Standard), wird bei der Suche die Groß-/Kleinschreibung berücksichtigt; andernfalls wird die Groß-/Kleinschreibung nicht berücksichtigt.

Dies entspricht der Funktion ` replace(str, "", cs)`.

Das Entfernen von Elementen bewahrt die Kapazität der Zeichenkette und verringert nicht die Menge des zugewiesenen Speichers. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` nach der letzten Änderung der Größe der Zeichenkette auf.

Dies ist eine überladene Funktion.

Siehe auch ` replace()`.

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

Entfernt das Zeichen am Index „ pos “. Liegt „ pos “ außerhalb des zulässigen Bereichs (d. h. „ pos “ >= „ size()“), führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch remove().

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

Entfernt das erste Zeichen dieser Zeichenkette. Ist die Zeichenkette leer, führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` remove()`.

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

Entfernt alle Elemente aus der Zeichenkette, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt eine Referenz auf die Zeichenkette zurück.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch ` remove()`.

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

Entfernt das letzte Zeichen dieser Zeichenkette. Ist die Zeichenkette leer, führt diese Funktion keine Aktion aus.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` remove()`.

QString::reverse_iterator QString::rend()

Gibt einen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das Zeichen nach dem letzten Zeichen der Zeichenkette zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QString “ ungültig.

Siehe auch „ end()“, „ crend()“ und „ rbegin()“.

QString::const_reverse_iterator QString::rend() const

Dies ist eine überladene Funktion.

QString QString::repeated(qsizetype times) const

Gibt eine Kopie dieser Zeichenkette zurück, die so oft wiederholt wird, wie in „ times “ angegeben.

Ist times kleiner als 1, wird eine leere Zeichenkette zurückgegeben.

Beispiel:

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

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

Ersetzt die Zeichen n, beginnend am Index position, durch die Zeichenfolge after und gibt eine Referenz auf diese Zeichenfolge zurück.

Hinweis: Befindet sich der angegebene Index „ position “ innerhalb der Zeichenkette, „ position “ + „ n “ jedoch außerhalb des Bereichs der Zeichenkette, wird „ n “ so angepasst, dass die Zeichenkette am Ende der Zeichenkette endet.

Beispiel:

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

Siehe auch insert() und remove().

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

Ersetzt jedes Vorkommen des regulären Ausdrucks „ re “ in der Zeichenkette durch „ after “. Gibt eine Referenz auf die Zeichenkette zurück. Beispiel:

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

Bei regulären Ausdrücken, die Erfassungsgruppen enthalten, werden Vorkommen von \1, \2, ... in „ after “ durch die von der entsprechenden Erfassungsgruppe erfasste Zeichenkette ersetzt.

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

Diese Funktion überlädt „ QString::replace()“.

Siehe auch indexOf(), lastIndexOf(), remove(), QRegularExpression und QRegularExpressionMatch.

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

Ersetzt jedes Vorkommen des Zeichens „ before “ durch das Zeichen „ after “ und gibt eine Referenz auf diese Zeichenkette zurück.

Ist cs gleich Qt::CaseSensitive (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Diese Funktion überlädt die Funktion ` QString::replace()`.

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

Ersetzt jedes Vorkommen des Zeichens „ c “ durch die Zeichenkette „ after “ und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Hinweis: Der Text wird nach einer Ersetzung nicht erneut durchsucht.

Diese Funktion überlädt die Funktion ` QString::replace()`.

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

Ersetzt jedes Vorkommen des Zeichens „ ch “ in der Zeichenkette durch „ after “ und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn „ cs “ gleich „ Qt::CaseSensitive “ ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Diese Funktion überlädt die Funktion „ QString::replace()“.

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

Ersetzt jedes Vorkommen der Latin-1-Zeichenkette, die unter before angezeigt wird, in dieser Zeichenkette durch die Latin-1-Zeichenkette, die unter after angezeigt wird, und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Hinweis: Der Text wird nach einer Ersetzung nicht erneut gescannt.

Hinweis: Wenn Sie ein leeres Argument für „ before “ verwenden, wird das Argument „ after “ vor und nach jedem Zeichen der Zeichenkette eingefügt.

Diese Funktion überlädt die Funktion ` QString::replace()`.

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

Ersetzt jedes Vorkommen der von before angezeigten Latin-1-Zeichenkette in dieser Zeichenkette durch die Zeichenkette after und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Hinweis: Der Text wird nach einer Ersetzung nicht erneut durchsucht.

Hinweis: Wenn Sie ein leeres „ before “-Argument verwenden, wird das „ after “-Argument vor und nach jedem Zeichen der Zeichenkette eingefügt.

Diese Funktion überlädt die Funktion ` QString::replace()`.

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

Ersetzt jedes Vorkommen der Zeichenfolge „ before “ durch die Zeichenfolge „ after “ und gibt eine Referenz auf diese Zeichenfolge zurück.

Wenn „ cs “ gleich „ Qt::CaseSensitive “ ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Hinweis: Der Text wird nach einer Ersetzung nicht erneut durchsucht.

Hinweis: Wenn Sie ein leeres „ before “-Argument verwenden, wird das „ after “-Argument vor und nach jedem Zeichen der Zeichenkette eingefügt.

Diese Funktion überlädt ` QString::replace()`.

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

Ersetzt jedes Vorkommen der Zeichenfolge „ before “ durch die Zeichenfolge „ after “ und gibt eine Referenz auf diese Zeichenfolge zurück.

Wenn „ cs “ gleich „ Qt::CaseSensitive “ ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Beispiel:

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

Hinweis: Der Ersetzungstext wird nach dem Einfügen nicht erneut gescannt.

Beispiel:

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

Hinweis: Wenn Sie ein leeres „ before “-Argument verwenden, wird das „ after “-Argument vor und nach jedem Zeichen der Zeichenkette eingefügt.

Diese Funktion überlädt die Funktion „ QString::replace()“.

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

Ersetzt die Zeichen von „ n “ ab dem Index „ position “ durch das Zeichen „ after “ und gibt eine Referenz auf diese Zeichenkette zurück.

Diese Funktion überlädt die Funktion „ QString::replace()“.

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

Ersetzt die Zeichen „ n “, beginnend am Index „ position “, durch die ersten „ alen “ Zeichen des Arrays „ QChar “ „ after “ und gibt eine Referenz auf diese Zeichenkette zurück.

n darf nicht negativ sein.

Diese Funktion überlädt QString::replace().

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

Ersetzt jedes Vorkommen der ersten blen Zeichen von before in dieser Zeichenkette durch die ersten alen Zeichen von after und gibt eine Referenz auf diese Zeichenkette zurück.

Wenn cs gleich Qt::CaseSensitive ist (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Hinweis: Wenn before auf eine leere Zeichenkette verweist (d. h. blen == 0), wird die Zeichenkette, auf die after verweist, vor und nach jedem Zeichen dieser Zeichenkette eingefügt.

Diese Funktion überlädt die Funktion ` QString::replace()`.

void QString::reserve(qsizetype size)

Stellt sicher, dass die Zeichenkette Platz für mindestens size Zeichen bietet.

Wenn Sie im Voraus wissen, wie groß eine Zeichenkette sein wird, können Sie diese Funktion aufrufen, um wiederholte Neuzuweisungen während der Erstellung zu vermeiden. Dies kann die Leistung verbessern, wenn eine Zeichenkette schrittweise aufgebaut wird. Eine lange Abfolge von Operationen, die zu einer Zeichenkette hinzugefügt werden, kann mehrere Neuzuweisungen auslösen, wobei die letzte davon möglicherweise deutlich mehr Speicherplatz hinterlässt, als Sie benötigen. Dies ist weniger effizient als eine einzige Zuweisung der richtigen Größe zu Beginn.

Wenn du dir unsicher bist, wie viel Speicherplatz benötigt wird, ist es in der Regel besser, eine Obergrenze wie ` size` zu verwenden oder eine hohe Schätzung der wahrscheinlichsten Größe, falls eine strenge Obergrenze deutlich größer wäre als diese. Ist ` size ` zu niedrig angesetzt, wächst die Zeichenkette bei Bedarf, sobald die reservierte Größe überschritten wird. Dies kann zu einer größeren Speicherzuweisung führen, als es Ihre beste Überschätzung vorgesehen hätte, und verlangsamt den Vorgang, der dies auslöst.

Warnung: reserve () reserviert Speicher, ändert jedoch nicht die Größe der Zeichenkette. Der Zugriff auf Daten jenseits des Endes der Zeichenkette führt zu undefiniertem Verhalten. Wenn Sie auf Speicher jenseits des aktuellen Endes der Zeichenkette zugreifen müssen, verwenden Sie resize().

Diese Funktion ist nützlich für Code, der eine lange Zeichenkette aufbauen muss und wiederholte Neuzuweisungen vermeiden möchte. In diesem Beispiel möchten wir die Zeichenkette so lange erweitern, bis eine bestimmte Bedingung erfüllt ist ( true), und wir sind ziemlich sicher, dass die Größe groß genug ist, um einen Aufruf von `reserve()` lohnenswert zu machen:

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

result.reserve(maxSize);

while (condition)
    result.append(nextChar);

result.squeeze();

Siehe auch ` squeeze()`, ` capacity()` und ` resize()`.

void QString::resize(qsizetype size)

Legt die Länge der Zeichenkette auf size Zeichen fest.

Ist „ size “ größer als die aktuelle Länge, wird die Zeichenkette auf die Länge „ size “ erweitert, wobei die zusätzlichen Zeichen am Ende angehängt werden. Die neuen Zeichen sind nicht initialisiert.

Ist ` size ` kleiner als die aktuelle Größe, werden Zeichen ab Position ` size ` aus der Zeichenkette entfernt.

Hinweis: resize() vergrößertzwar bei Bedarf die Kapazität, verkleinert sie jedoch niemals. Um überschüssige Kapazität abzubauen, verwenden Sie squeeze().

Beispiel:

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

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

Wenn Sie eine bestimmte Anzahl identischer Zeichen an die Zeichenkette anhängen möchten, verwenden Sie die Überladung von ` resize(qsizetype, QChar)`.

Wenn Sie die Zeichenkette so erweitern möchten, dass sie eine bestimmte Breite erreicht, und die neuen Positionen mit einem bestimmten Zeichen füllen möchten, verwenden Sie die Funktion ` leftJustified()`:

Ist ` size ` negativ, entspricht dies der Übergabe von Null.

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

Siehe auch „ truncate()“, „ reserve()“ und „ squeeze()“.

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

Im Gegensatz zu „ resize “ (qsizetype) initialisiert diese Überladung die neuen Zeichen mit „ fillChar “:

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

Dies ist eine überladene Funktion.

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

Legt die Länge der Zeichenkette auf size Zeichen fest. Wenn die Länge der Zeichenkette zunimmt, werden die neuen Zeichen nicht initialisiert.

Das Verhalten entspricht dem von ` resize(size)`.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` resize()`.

QString QString::right(qsizetype n) const &

Gibt eine Teilzeichenfolge zurück, die die n Zeichen ganz rechts im String enthält.

Wenn Sie wissen, dass ` n ` nicht außerhalb des zulässigen Bereichs liegen kann, verwenden Sie in neuem Code stattdessen ` last()`, da dies schneller ist.

Die gesamte Zeichenkette wird zurückgegeben, wenn ` n ` größer oder gleich ` size()` ist oder kleiner als Null.

Siehe auch endsWith(), last(), first(), sliced(), chopped(), chop(), truncate() und slice().

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

Gibt eine Zeichenkette vom Typ „ size()“ width zurück, die das Zeichen „ fill “ gefolgt von der Zeichenkette enthält. Beispiel:

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

Wenn „ truncate “ auf „ false “ gesetzt ist und die „ size()“-Länge der Zeichenkette größer als „ width “ ist, dann ist die zurückgegebene Zeichenkette eine Kopie der Zeichenkette.

Wenn truncate wahr ist und die Länge size() der Zeichenkette größer als width ist, wird die resultierende Zeichenkette an der Position width abgeschnitten.

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

Siehe auch ` leftJustified()`.

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

Diese Funktion gibt einen Ausschnitt der Zeichenkette zurück.

Diese Zeichenkette wird als eine Folge von Feldern behandelt, die durch das Zeichen „ sep “ getrennt sind. Die zurückgegebene Zeichenkette besteht aus den Feldern von Position „ start “ bis einschließlich Position „ end “. Wenn „ end “ nicht angegeben ist, werden alle Felder von Position „ start “ bis zum Ende der Zeichenkette einbezogen. Felder werden von links beginnend mit 0, 1, 2 usw. und von rechts nach links beginnend mit -1, -2 usw. nummeriert.

Das Argument „ flags “ kann verwendet werden, um bestimmte Aspekte des Funktionsverhaltens zu beeinflussen, z. B. ob Groß- und Kleinschreibung beachtet werden soll, ob leere Felder übersprungen werden sollen und wie mit führenden und abschließenden Trennzeichen umgegangen werden soll; siehe 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"

Ist start oder end negativ, werden die Felder von der rechten Seite der Zeichenkette gezählt, wobei das Feld ganz rechts -1, das Feld rechts davon -2 usw. ist.

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

Siehe auch split().

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

Diese Zeichenkette wird als eine Folge von Feldern behandelt, die durch den regulären Ausdruck „ re “ getrennt sind.

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"

Warnung: Die Verwendung dieser Version von „ QRegularExpression “ ist wesentlich rechenintensiver als die überladenen Versionen für Zeichenketten und Zeichen.

Diese Funktion überlädt „ QString::section()“.

Siehe auch „ split()“ und „ simplified()“.

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

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

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

Diese Funktion überlädt „ QString::section()“.

Siehe auch ` split()`.

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

Setzt die Zeichenkette auf den ausgegebenen Wert von ` n ` in der angegebenen ` base` und gibt eine Referenz auf die Zeichenkette zurück.

Die Basis ist standardmäßig 10 und muss zwischen 2 und 36 liegen.

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

Die Formatierung erfolgt immer gemäß „ QLocale::C “, d. h. nach den Standards für Englisch (USA). Um eine lokalisierte Zeichenfolgendarstellung einer Zahl zu erhalten, verwenden Sie „ QLocale::toString()“ mit der entsprechenden Locale.

Siehe auch ` number()`.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

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

Setzt die Zeichenkette auf den ausgegebenen Wert von ` n`, formatiert gemäß den angegebenen Werten für ` format ` und ` precision`, und gibt eine Referenz auf die Zeichenkette zurück.

Dies ist eine überladene Funktion.

Siehe auch ` number()`, ` QLocale::FloatingPointPrecisionOption` und ` Number formats`.

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

Setzt die Zeichenkette auf den ausgegebenen Wert von „ n “, formatiert gemäß den angegebenen Werten für „ format “ und „ precision “, und gibt eine Referenz auf die Zeichenkette zurück.

Die Formatierung erfolgt immer gemäß „ QLocale::C “, d. h. nach der Einstellung „Englisch/Vereinigte Staaten“. Um eine lokalisierte Zeichenfolgendarstellung einer Zahl zu erhalten, verwenden Sie „ QLocale::toString()“ mit der entsprechenden Locale.

Dies ist eine überladene Funktion.

Siehe auch ` number()`.

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

Setzt das Objekt „ QString “ zurück, sodass die ersten Unicode-Zeichen des Arrays „ size “ im Array „ unicode “ verwendet werden. Die Daten in „ unicode “ werden nicht kopiert. Der Aufrufer muss gewährleisten können, dass „ unicode “ nicht gelöscht oder geändert wird, solange „ QString “ (oder eine unveränderte Kopie davon) existiert.

Diese Funktion kann anstelle von ` fromRawData()` verwendet werden, um vorhandene ` QString `-Objekte wiederzuverwenden und so Speicherneuzuweisungen zu vermeiden.

Siehe auch fromRawData(), nullTerminate() und nullTerminated().

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

Passen die Länge der Zeichenkette auf size Zeichen an und kopieren unicode in die Zeichenkette.

Wenn unicode gleich nullptr ist, wird nichts kopiert, aber die Zeichenkette wird dennoch auf size angepasst.

Siehe auch unicode() und setUtf16().

[since 6.9] QString &QString::setUnicode(const char16_t *unicode, qsizetype size)

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch unicode() und setUtf16().

[since 6.9] QString &QString::setUtf16(const char16_t *unicode, qsizetype size)

Passen die Länge der Zeichenkette auf size Zeichen an und kopieren unicode in die Zeichenkette.

Wenn unicode gleich nullptr ist, wird nichts kopiert, aber die Zeichenkette wird dennoch auf size angepasst.

Beachten Sie, dass diese Funktion im Gegensatz zu ` fromUtf16()` keine BOMs und möglicherweise abweichende Byte-Reihenfolgen berücksichtigt.

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch utf16() und setUnicode().

void QString::shrink_to_fit()

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „ squeeze()“.

Siehe auch ` squeeze()`.

QString QString::simplified() const

Gibt eine Zeichenkette zurück, bei der Leerzeichen am Anfang und am Ende entfernt wurden und bei der jede Folge von internen Leerzeichen durch ein einzelnes Leerzeichen ersetzt wurde.

Unter Leerzeichen versteht man jedes Zeichen, für das QChar::isSpace() den Wert true zurückgibt. Dazu gehören die ASCII-Zeichen '\t', '\n', '\v', '\f', '\r' und ' '.

Beispiel:

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

Siehe auch trimmed().

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

Gibt die Anzahl der Zeichen in dieser Zeichenkette zurück.

Das letzte Zeichen der Zeichenkette befindet sich an der Position size() - 1.

Beispiel:

QString str = "World";
qsizetype n = str.size();   // n == 5
str.data()[0];              // returns 'W'
str.data()[4];              // returns 'd'

Siehe auch „ isEmpty()“ und „ resize()“.

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

Ändert diese Zeichenkette so, dass sie an der Position pos beginnt und bis zum Zeichen (Codepunkt) an der Indexposition pos + n; und gibt eine Referenz auf diese Zeichenkette zurück.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0 oder pos + n > size().

QString x = u"Nine pineapples"_s;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch sliced(), first(), last(), chopped(), chop() und truncate().

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

Ändert diese Zeichenkette so, dass die Änderung an der Position pos beginnt und sich bis zum Ende der Zeichenkette erstreckt, und gibt eine Referenz auf diese Zeichenkette zurück.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` sliced()`, ` first()`, ` last()`, ` chopped()`, ` chop()` und ` truncate()`.

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

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

Gibt eine Zeichenkette zurück, die die Zeichen „ n “ dieser Zeichenkette enthält, beginnend an der Position pos bis einschließlich zum Element an der Indexposition pos + n.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0 oder pos + n > size().

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

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch first(), last(), chopped(), chop(), truncate() und slice().

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

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

Gibt eine Zeichenkette zurück, die den Teil dieser Zeichenkette enthält, der an der Position pos beginnt und bis zum Ende der Zeichenkette reicht.

Hinweis: Das Verhalten ist undefiniert, wenn „ pos “ < 0 oder „ pos “ > „ size “() ist.

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch first(), last(), chopped(), chop(), truncate() und slice().

QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Teilt die Zeichenkette an allen Stellen, an denen „ sep “ vorkommt, in Teilzeichenketten auf und gibt die Liste dieser Zeichenketten zurück. Wenn „ sep “ an keiner Stelle in der Zeichenkette vorkommt, gibt split() eine Liste mit einem einzigen Element zurück, die diese Zeichenkette enthält.

cs Legt fest, ob bei der Suche nach „ sep “ die Groß-/Kleinschreibung beachtet werden soll oder nicht.

Ist behavior gleich Qt::SkipEmptyParts, erscheinen keine leeren Einträge im Ergebnis. Standardmäßig werden leere Einträge beibehalten.

Beispiel:

QString str = QStringLiteral("a,,b,c");

QStringList list1 = str.split(u',');
// list1: [ "a", "", "b", "c" ]

QStringList list2 = str.split(u',', Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ]

Ist ` sep ` leer, gibt `split()` eine leere Zeichenkette zurück, gefolgt von jedem einzelnen Zeichen der Zeichenkette und anschließend einer weiteren leeren Zeichenkette:

QString str = "abc";
auto parts = str.split(QString());
// parts: {"", "a", "b", "c", ""}

Um dieses Verhalten zu verstehen, denken Sie daran, dass die leere Zeichenkette überall passt, sodass das Obige qualitativ dasselbe ist wie:

QString str = "/a/b/c/";
auto parts = str.split(u'/');
// parts: {"", "a", "b", "c", ""}

Siehe auch ` QStringList::join()` und ` section()`.

QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const

Teilt die Zeichenkette an allen Stellen, an denen der reguläre Ausdruck re übereinstimmt, in Teilzeichenketten auf und gibt die Liste dieser Zeichenketten zurück. Wenn re an keiner Stelle in der Zeichenkette übereinstimmt, gibt split() eine Liste mit einem einzigen Element zurück, die diese Zeichenkette enthält.

Hier ist ein Beispiel, in dem wir die Wörter eines Satzes extrahieren, wobei wir ein oder mehrere Leerzeichen als Trennzeichen verwenden:

QString str;
QStringList list;

str = "Some  text\n\twith  strange whitespace.";
list = str.split(QRegularExpression("\\s+"));
// list: [ "Some", "text", "with", "strange", "whitespace." ]

Hier ist ein ähnliches Beispiel, bei dem wir diesmal eine beliebige Folge von Nicht-Wortzeichen als Trennzeichen verwenden:

str = "This time, a normal English sentence.";
list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts);
// list: [ "This", "time", "a", "normal", "English", "sentence" ]

Hier ist ein drittes Beispiel, in dem wir eine Assertion der Länge Null verwenden, \b (Wortgrenze), um die Zeichenkette in eine abwechselnde Folge von Nicht-Wort- und Wort-Tokens zu zerlegen:

str = "Now: this sentence fragment.";
list = str.split(QRegularExpression("\\b"));
// list: [ "", "Now", ": ", "this", " ", "sentence", " ", "fragment", "." ]

Dies ist eine überladene Funktion.

Siehe auch QStringList::join() und section().

QStringList QString::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Dies ist eine überladene Funktion.

void QString::squeeze()

Gibt den Speicher frei, der nicht zur Speicherung der Zeichendaten benötigt wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von QString zu bieten. Im Allgemeinen werden Sie diese Funktion so gut wie nie aufrufen müssen.

Siehe auch „ reserve()“ und „ capacity()“.

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

Gibt „ true “ zurück, wenn die Zeichenfolge mit „ s “ beginnt; andernfalls wird „ false “ zurückgegeben.

Wenn cs den Wert Qt::CaseSensitive hat (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

QString str = "Bananas";
str.startsWith("Ban");     // returns true
str.startsWith("Car");     // returns false

Siehe auch endsWith().

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

Gibt „ true “ zurück, wenn die Zeichenfolge mit „ c “ beginnt; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::startsWith()`.

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

Diese Funktion überlädt die Funktion ` QString::startsWith()`.

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

Gibt „ true “ zurück, wenn die Zeichenfolge mit der Zeichenfolge „ str “ beginnt; andernfalls wird „ false “ zurückgegeben.

Ist cs gleich Qt::CaseSensitive (Standard), wird bei der Suche die Groß-/Kleinschreibung beachtet; andernfalls wird die Groß-/Kleinschreibung nicht beachtet.

Dies ist eine überladene Funktion.

Siehe auch ` endsWith()`.

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

Tauscht diese Zeichenkette gegen „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

CFStringRef QString::toCFString() const

Erstellt einen CFString aus einem „ QString “.

Der Aufrufer ist Eigentümer des CFString und für dessen Freigabe verantwortlich.

Hinweis: Diese Funktion ist nur unter macOS und iOS verfügbar.

QString QString::toCaseFolded() const

Gibt die Groß-/Kleinschreibung der Zeichenfolge an. Bei den meisten Unicode-Zeichen entspricht dies der Funktion „ toLower()“.

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

Gibt die in einen Wert vom Typ „ double “ konvertierte Zeichenkette zurück.

Gibt „unendlich“ zurück, wenn bei der Konvertierung ein Überlauf auftritt, oder 0,0, wenn die Konvertierung aus anderen Gründen fehlschlägt (z. B. Unterlauf).

Wenn „ ok “ nicht „ nullptr “ ist, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

QString str = "1234.56";
double val = str.toDouble();   // val == 1234.56

Warnung: Der Inhalt von ` QString ` darf nur gültige numerische Zeichen enthalten, darunter das Plus- und Minuszeichen, das Zeichen `e` in der wissenschaftlichen Schreibweise und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.

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

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toDouble().

d = QString( "1234,56" ).toDouble(&ok); // ok == false
d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56

Aus historischen Gründen berücksichtigt diese Funktion keine Tausendertrennzeichen. Wenn Sie solche Zahlen konvertieren müssen, verwenden Sie ` QLocale::toDouble()`.

d = QString( "1,234,567.89" ).toDouble(&ok); // ok == false
d = QString( "1234567.89" ).toDouble(&ok); // ok == true

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Siehe auch number(), QLocale::setDefault(), QLocale::toDouble() und trimmed().

[since 6.6] emscripten::val QString::toEcmaString() const

Wandelt dieses Objekt in eine ECMAScript-Zeichenkette um.

Diese Funktion wurde in Qt 6.6 eingeführt.

Siehe auch ` fromEcmaString()`.

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

Gibt die in einen „ float “-Wert konvertierte Zeichenkette zurück.

Gibt „unendlich“ zurück, wenn bei der Konvertierung ein Überlauf auftritt, oder 0,0, wenn die Konvertierung aus anderen Gründen fehlschlägt (z. B. Unterlauf).

Wenn „ ok “ nicht „ nullptr “ ist, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Warnung: Der Inhalt von ` QString ` darf nur gültige numerische Zeichen enthalten, darunter das Plus- und Minuszeichen, das Zeichen `e` in der wissenschaftlichen Schreibweise und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie ` QLocale::toFloat()`.

Aus historischen Gründen berücksichtigt diese Funktion keine Tausendertrennzeichen. Wenn Sie solche Zahlen konvertieren müssen, verwenden Sie ` QLocale::toFloat()`.

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Siehe auch number(), toDouble(), toInt(), QLocale::toFloat() und trimmed().

QString QString::toHtmlEscaped() const

Wandelt eine Klartextzeichenkette in eine HTML-Zeichenkette um, wobei die HTML-Metazeichen <, >, & und " durch HTML-Entitäten ersetzt werden.

Beispiel:

QString plain = "#include <QtCore>";
QString html = plain.toHtmlEscaped();
// html == "#include &lt;QtCore&gt;"

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in ein int konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei fehlgeschlagener Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toInt()

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toUInt(), toDouble() und QLocale::toInt().

QByteArray QString::toLatin1() const

Gibt eine Latin-1-Darstellung der Zeichenkette als „ QByteArray “ zurück.

Das zurückgegebene Byte-Array ist undefiniert, wenn die Zeichenkette Nicht-Latin-1-Zeichen enthält. Diese Zeichen können unterdrückt oder durch ein Fragezeichen ersetzt werden.

Siehe auch fromLatin1(), toUtf8(), toLocal8Bit() und QStringEncoder.

QByteArray QString::toLocal8Bit() const

Gibt die lokale 8-Bit-Darstellung der Zeichenkette als ` QByteArray` zurück.

Auf Unix-Systemen entspricht dies der Funktion ` toUtf8()`. Beachten Sie, dass diese Funktion auf Apple-Systemen weder `NSString.defaultCStringEncoding ` noch `CFStringGetSystemEncoding() ` berücksichtigt, da diese Funktionen in der Regel die veraltete Kodierung „Western (Mac OS Roman)“ zurückgeben, die auf modernen Apple-Betriebssystemen nicht verwendet werden sollte. Unter Windows wird die aktuelle Codepage des Systems verwendet.

Enthält diese Zeichenkette Zeichen, die nicht in der lokalen 8-Bit-Kodierung kodiert werden können, ist das zurückgegebene Byte-Array undefiniert. Diese Zeichen können unterdrückt oder durch andere ersetzt werden.

Siehe auch fromLocal8Bit(), toLatin1(), toUtf8() und QStringEncoder.

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in ein „ long “ konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist „ ok “ nicht gleich „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toLongLong()

Beispiel:

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

Diese Funktion ignoriert führende und nachfolgende Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toULong(), toInt() und QLocale::toInt().

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in ein long long konvertiert wurde. Der Standardwert für ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei Fehlschlag der Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toLongLong()

Beispiel:

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

Diese Funktion ignoriert führende und nachfolgende Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toULongLong(), toInt() und QLocale::toLongLong().

QString QString::toLower() const

Gibt eine Kopie der Zeichenkette in Kleinbuchstaben zurück.

QString str = "The Qt PROJECT";
str = str.toLower();        // str == "the qt project"

Die Groß-/Kleinschreibung wird immer gemäß der Locale „C“ angepasst. Für eine localeabhängige Umwandlung der Groß-/Kleinschreibung verwenden Sie QLocale::toLower()

Siehe auch ` toUpper()` und ` QLocale::toLower()`.

NSString *QString::toNSString() const

Erstellt ein `NSString` aus einem ` QString`.

Das NSString wird automatisch freigegeben.

Hinweis: Diese Funktion ist nur unter macOS und iOS verfügbar.

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in ein short konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei fehlgeschlagener Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht gleich „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist ` base ` gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toShort()

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toUShort(), toInt() und QLocale::toShort().

std::string QString::toStdString() const

Gibt ein std::string-Objekt zurück, das die in diesem QString enthaltenen Daten enthält. Die Unicode-Daten werden mithilfe der Funktion toUtf8() in 8-Bit-Zeichen konvertiert.

Diese Methode ist vor allem nützlich, um ein ` QString ` an eine Funktion zu übergeben, die ein `std::string`-Objekt akzeptiert.

Siehe auch „ toLatin1()“, „ toUtf8()“, „ toLocal8Bit()“ und „ QByteArray::toStdString()“.

std::u16string QString::toStdU16String() const

Gibt ein std::u16string-Objekt mit den in diesem ` QString` enthaltenen Daten zurück. Die Unicode-Daten entsprechen denen, die von der Methode `utf16()` zurückgegeben werden.

Siehe auch utf16(), toStdWString() und toStdU32String().

std::u32string QString::toStdU32String() const

Gibt ein std::u32string-Objekt mit den in diesem QString enthaltenen Daten zurück. Die Unicode-Daten entsprechen denen, die von der Methode toUcs4() zurückgegeben werden.

Siehe auch toUcs4(), toStdWString() und toStdU16String().

std::wstring QString::toStdWString() const

Gibt ein std::wstring-Objekt zurück, das die in diesem ` QString` enthaltenen Daten enthält. Der std::wstring wird auf Plattformen, auf denen wchar_t 2 Byte breit ist (z. B. Windows), in UTF-16 kodiert und auf Plattformen, auf denen wchar_t 4 Byte breit ist (die meisten Unix-Systeme), in UTF-32 kodiert.

Diese Methode ist vor allem nützlich, um ein ` QString ` an eine Funktion zu übergeben, die ein `std::wstring`-Objekt akzeptiert.

Siehe auch ` utf16()`, ` toLatin1()`, ` toUtf8()`, ` toLocal8Bit()`, ` toStdU16String()` und ` toStdU32String()`.

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in eine unsigned int konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei fehlgeschlagener Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die C-Konvention verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toUInt()

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toInt() und QLocale::toUInt().

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in eine unsigned long konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei fehlgeschlagener Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toULongLong()

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch ` number()` und ` QLocale::toUInt()`.

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in eine unsigned long long konvertiert wurde. Der Standardwert für die Basis ist 10; er muss zwischen 2 und 36 liegen oder 0 sein. Bei fehlgeschlagener Konvertierung wird 0 zurückgegeben.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toULongLong()

Beispiel:

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

Diese Funktion ignoriert führende und nachstehende Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toLongLong() und QLocale::toULongLong().

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

Gibt die Zeichenkette zurück, die unter Verwendung der Basis base in eine unsigned short konvertiert wurde. Die Basis beträgt standardmäßig 10 und muss zwischen 2 und 36 oder 0 liegen. Gibt 0 zurück, wenn die Konvertierung fehlschlägt.

Ist „ ok “ nicht „ nullptr “, wird ein Fehler gemeldet, indem *ok auf „ false “ gesetzt wird, und ein Erfolg, indem *ok auf „ true “ gesetzt wird.

Ist „ base “ gleich 0, wird die Konvention der Programmiersprache C verwendet: Beginnt die Zeichenkette mit „0x“, wird die Basis 16 verwendet; andernfalls, wenn die Zeichenkette mit „0b“ beginnt, wird die Basis 2 verwendet; andernfalls, wenn die Zeichenkette mit „0“ beginnt, wird die Basis 8 verwendet; ansonsten wird die Basis 10 verwendet.

Die Zeichenfolgenkonvertierung erfolgt immer in der Locale „C“. Für eine localeabhängige Konvertierung verwenden Sie QLocale::toUShort()

Beispiel:

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

Diese Funktion ignoriert führende und nachgestellte Leerzeichen.

Hinweis: Die Unterstützung für das Präfix „0b“ wurde in Qt 6.4 hinzugefügt.

Siehe auch number(), toShort() und QLocale::toUShort().

QList<uint> QString::toUcs4() const

Gibt eine UCS-4/UTF-32-Darstellung der Zeichenkette als „ QList “ <uint> zurück.

UTF-32 ist ein Unicode-Codec und daher verlustfrei. Alle Zeichen dieser Zeichenkette werden in UTF-32 kodiert. Jede ungültige Folge von Codeeinheiten in dieser Zeichenkette wird durch das Unicode-Ersatzzeichen (QChar::ReplacementCharacter, das U+FFFD entspricht) ersetzt.

Die zurückgegebene Liste ist nicht mit einem Null-Zeichen abgeschlossen.

Siehe auch fromUtf8(), toUtf8(), toLatin1(), toLocal8Bit(), QStringEncoder, fromUcs4() und toWCharArray().

QString QString::toUpper() const

Gibt eine Kopie der Zeichenkette in Großbuchstaben zurück.

QString str = "TeXt";
str = str.toUpper();        // str == "TEXT"

Die Groß-/Kleinschreibung wird immer gemäß der Locale „C“ umgewandelt. Für eine localeabhängige Umwandlung der Groß-/Kleinschreibung verwenden Sie QLocale::toUpper().

Hinweis: In einigen Fällen kann die Großbuchstabenform einer Zeichenkette länger sein als das Original.

Hinweis: Seit 2024 wird im Deutschen das ß (U+00DF LATIN SMALL LETTER SHARP S) offiziell als ẞ (U+1E9E LATIN CAPITAL LETTER SHARP S) in Großbuchstaben geschrieben. Die Qt-Implementierung folgt Unicode, das weiterhin die Verwendung von „SS“ vorschreibt. Wenn Sie die neuen deutschen Regeln umsetzen möchten, müssen Sie vor dem Aufruf dieser Funktion manuell replace(u'ß', u'ẞ') ausführen.

Siehe auch „ toLower()“ und „ QLocale::toLower()“.

QByteArray QString::toUtf8() const

Gibt eine UTF-8-Darstellung der Zeichenkette als ` QByteArray` zurück.

UTF-8 ist ein Unicode-Codec und kann alle Zeichen in einer Unicode-Zeichenkette wie QString darstellen.

Siehe auch fromUtf8(), toLatin1(), toLocal8Bit() und QStringEncoder.

qsizetype QString::toWCharArray(wchar_t *array) const

Füllt das Array „ array “ mit den in diesem „ QString “-Objekt enthaltenen Daten. Das Array wird auf Plattformen, auf denen „wchar_t“ 2 Byte breit ist (z. B. Windows), in UTF-16 kodiert, und auf Plattformen, auf denen „wchar_t“ 4 Byte breit ist (die meisten Unix-Systeme), in UTF-32.

array muss vom Aufrufer zugewiesen werden und genügend Platz für die gesamte Zeichenkette enthalten (die Zuweisung eines Arrays mit derselben Länge wie die Zeichenkette ist immer ausreichend).

Diese Funktion gibt die tatsächliche Länge der Zeichenkette als ` array` zurück.

Hinweis: Diese Funktion fügt dem Array kein Nullzeichen an.

Siehe auch utf16(), toUcs4(), toLatin1(), toUtf8(), toLocal8Bit(), toStdWString() und QStringView::toWCharArray().

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) &&

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &&

[noexcept(...), since 6.0] template <typename Needle, typename... Flags> auto QString::tokenize(Needle &&sep, Flags... flags) const &

Teilt die Zeichenkette an allen Stellen, an denen „ sep “ vorkommt, in Teilzeichenfolgen auf und gibt eine „lazy“-Sequenz dieser Zeichenfolgen zurück.

Entspricht

return QStringTokenizer{std::forward<Needle>(sep), flags...};

, außer dass es auch funktioniert, wenn die C++17-Funktion „Class Template Argument Deduction“ (CTAD) im Compiler nicht aktiviert ist.

Unter QStringTokenizer erfährst du, wie „ sep “ und „ flags “ zusammenwirken, um das Ergebnis zu bilden.

Hinweis: Obwohl diese Funktion ` QStringTokenizer` zurückgibt, sollten Sie ihre Vorlagenargumente niemals explizit benennen. Wenn Sie die C++17-Klassenvorlagenargumentsableitung (CTAD) verwenden können, dürfen Sie

QStringTokenizer result = sv.tokenize(sep);

(ohne Vorlagenargumente). Wenn Sie die C++17-CTAD nicht verwenden können, müssen Sie den Rückgabewert ausschließlich in Variablen vom Typ ` auto ` speichern:

auto result = sv.tokenize(sep);

Dies liegt daran, dass die Template-Argumente von ` QStringTokenizer ` eine sehr subtile Abhängigkeit von der spezifischen Überladung von ` tokenize()` aufweisen, aus der sie zurückgegeben werden, und dass sie in der Regel nicht dem für das Trennzeichen verwendeten Typ entsprechen.

Diese Funktionen wurden in Qt 6.0 eingeführt.

Hinweis: ( 1) ist „noexcept“, wenn „ noexcept(qTokenize(std::declval<QString>(), std::forward<Needle>(needle), flags...)) “ gleich „ true “ ist.

Hinweis: ( 2) ist „noexcept“, wenn „ noexcept(qTokenize(std::declval<const QString>(), std::forward<Needle>(needle), flags...)) “ gleich „ true “ ist.

Hinweis: ( 3) ist „noexcept“, wenn „ noexcept(qTokenize(std::declval<const QString &>(), std::forward<Needle>(needle), flags...)) “ gleich „ true “ ist.

Siehe auch „ QStringTokenizer “ und „ qTokenize()“.

QString QString::trimmed() const

Gibt eine Zeichenkette zurück, aus der Leerzeichen am Anfang und am Ende entfernt wurden.

Unter Leerzeichen versteht man alle Zeichen, für die die Funktion „ QChar::isSpace()“ den Wert „ true “ zurückgibt. Dazu gehören die ASCII-Zeichen „'\t'“, „'\n'“, „'\v'“, „'\f'“, „'\r'“ und „' '“.

Beispiel:

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"

Im Gegensatz zu ` simplified()` belässt `trimmed()` interne Leerzeichen unverändert.

Siehe auch „ simplified()“.

void QString::truncate(qsizetype position)

Kürzt die Zeichenkette beginnend mit dem Element am Index position(einschließlich dieses Elements) ab.

Liegt der angegebene Index ` position ` jenseits des Endes der Zeichenkette, geschieht nichts.

Beispiel:

QString str = "Vladivostok";
str.truncate(4);
// str == "Vlad"

Ist ` position ` negativ, entspricht dies der Übergabe von Null.

Siehe auch chop(), resize(), first() und QStringView::truncate().

const QChar *QString::unicode() const

Gibt eine Unicode-Darstellung der Zeichenkette zurück. Das Ergebnis bleibt gültig, bis die Zeichenkette geändert wird.

Hinweis: Die zurückgegebene Zeichenkette ist möglicherweise nicht mit „\0 “ abgeschlossen. Verwenden Sie „ size()“, um die Länge des Arrays zu ermitteln.

Siehe auch ` setUnicode()`, ` utf16()` und ` fromRawData()`.

[static] QString QString::vasprintf(const char *cformat, va_list ap)

Entspricht der Funktion „ asprintf()“, nimmt jedoch anstelle einer Liste variabler Argumente eine „va_list“ ap. Eine Erläuterung zu „ cformat “ finden Sie in der Dokumentation zu „ asprintf()“.

Diese Methode ruft das Makro `va_end` nicht auf; der Aufrufer ist dafür verantwortlich, `va_end` für ` ap` aufzurufen.

Siehe auch asprintf().

[noexcept, since 6.7] QString::operator std::u16string_view() const

Wandelt dieses „ QString “-Objekt in ein „ std::u16string_view “-Objekt um.

Diese Funktion wurde in Qt 6.7 eingeführt.

QString &QString::operator+=(const QString &other)

Fügt die Zeichenfolge „ other “ an das Ende dieser Zeichenfolge an und gibt eine Referenz auf diese Zeichenfolge zurück.

Beispiel:

QString x = "free";
QString y = "dom";
x += y;
// x == "freedom"

Dieser Vorgang ist in der Regel sehr schnell (konstante Laufzeit), da „ QString “ am Ende der Zeichenkettendaten zusätzlichen Speicherplatz vorab reserviert, sodass die Zeichenkette erweitert werden kann, ohne dass jedes Mal die gesamte Zeichenkette neu zugewiesen werden muss.

Siehe auch „ append()“ und „ prepend()“.

QString &QString::operator+=(QChar ch)

Fügt das Zeichen „ ch “ an die Zeichenkette an.

Diese Funktion überlädt die Funktion „ QString::operator+=()“.

QString &QString::operator+=(QLatin1StringView str)

Fügt die von ` str ` gelieferte Latin-1-Zeichenkette an diese Zeichenkette an.

Diese Funktion überlädt die Funktion „ QString::operator+=()“.

[since 6.0] QString &QString::operator+=(QStringView str)

Fügt die Zeichenfolgenansicht „ str “ an diese Zeichenfolge an.

Diese Funktion überlädt die Funktion ` QString::operator+=()`.

Diese Funktion wurde in Qt 6.0 eingeführt.

[since 6.5] QString &QString::operator+=(QUtf8StringView str)

Fügt die UTF-8-Zeichenkette „ str “ an diese Zeichenkette an.

Diese Funktion überlädt die Funktion ` QString::operator+=()`.

Diese Funktion wurde in Qt 6.5 eingeführt.

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

Fügt das Byte-Array „ ba “ an diese Zeichenkette an. Das Byte-Array wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert. Sollten im Byte-Array „ ba “ NUL-Zeichen („\0 “) enthalten sein, werden diese bei der Konvertierung mit einbezogen.

Sie können diese Funktion deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt die Funktion ` QString::operator+=()`.

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

Fügt die Zeichenkette „ str “ an diese Zeichenkette an. Der const char-Zeiger wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diese Funktion deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch die Funktion ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt die Funktion ` QString::operator+=()`.

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

Weist „ other “ dieser „ QString “-Instanz zu.

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

Weist dieser Zeichenfolge den Wert „ other “ zu und gibt eine Referenz auf diese Zeichenfolge zurück.

QString &QString::operator=(QChar ch)

Legt die Zeichenkette so fest, dass sie das einzelne Zeichen „ ch “ enthält.

Diese Funktion überlädt die Funktion ` QString::operator=()`.

QString &QString::operator=(QLatin1StringView str)

Weist die von ` str ` angezeigte Latin-1-Zeichenkette dieser Zeichenkette zu.

Diese Funktion überlädt die Funktion ` QString::operator=()`.

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

Weist dieser Zeichenkette „ ba “ zu. Das Byte-Array wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt „ QString::operator=()“.

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

Weist dieser Zeichenkette den Wert „ str “ zu. Der Zeiger vom Typ „const char“ wird mithilfe der Funktion „ fromUtf8()“ in Unicode konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen die Makros ` QT_NO_CAST_FROM_ASCII ` oder ` QT_RESTRICTED_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen die Funktion ` QObject::tr()` durchlaufen.

Diese Funktion überlädt ` QString::operator=()`.

QChar &QString::operator[](qsizetype position)

Gibt das Zeichen an der angegebenen Position ` position ` in der Zeichenkette als bearbeitbare Referenz zurück.

Beispiel:

QString str;

if (str[0] == QChar('?'))
    str[0] = QChar('_');

Siehe auch ` at()` ().

const QChar QString::operator[](qsizetype position) const

Diese Funktion überlädt die Funktion „ QString::operator[]()“.

Verwandte Nicht-Mitglieder

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

Entfernt alle Elemente aus der Zeichenkette „ s “, die mit „ t “ übereinstimmen. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch „ erase_if “.

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

Entfernt alle Elemente aus der Zeichenkette „ s “, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch „ erase “.

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ nicht mit der UTF-8-Kodierung von „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Beim Vergleich wird die Groß-/Kleinschreibung berücksichtigt.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Sie müssen dann ` QString::fromUtf8()`, ` QString::fromLatin1()` oder ` QString::fromLocal8Bit()` explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein ` QString ` konvertieren möchten.

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

Gibt „ true “ zurück, wenn „ lhs “ nicht mit „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „ lhs “ nicht gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Für lhs!= 0 entspricht dies compare( lhs sowie rhs ) != 0 . Beachten Sie, dass keine Zeichenkette gleich lhs ist, wenn den Wert 0 hat.

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

Das Byte-Array „ rhs “ wird in ein „ QUtf8StringView “ konvertiert. Sollten im Byte-Array NUL-Zeichen („\0 “) enthalten sein, werden diese bei der Transformation mit einbezogen.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch ` QObject::tr()` geleitet werden.

Diese Funktion überlädt ` QString::operator!=()`.

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

Gibt „ true “ zurück, wenn „string lhs “ nicht gleich „string rhs “ ist. Andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator!=()`.

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

Der Zeiger „ rhs const char“ wird in einen „ QUtf8StringView “ konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt „ QString::operator!=()“.

[noexcept, since 6.4] QString operator""_s(const char16_t *str, size_t size)

Literaloperator, der aus den ersten size Zeichen des char16_t-Zeichenfolgenliterals str eine „ QString “ erstellt.

Der ` QString ` wird zur Kompilierungszeit erstellt, und die generierten Zeichenfolgendaten werden im schreibgeschützten Segment der kompilierten Objektdatei gespeichert. Doppelte Literale können denselben schreibgeschützten Speicherbereich gemeinsam nutzen. Diese Funktionalität ist austauschbar mit ` QStringLiteral`, spart jedoch Eingabeaufwand, wenn viele Zeichenfolgenliterale im Code vorhanden sind.

Der folgende Code erstellt eine ` QString`:

using namespace Qt::StringLiterals;

auto str = u"hello"_s;

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` Qt::Literals::StringLiterals`.

QString operator+(QString &&s1, const QString &s2)

QString operator+(const QString &s1, const QString &s2)

Gibt eine Zeichenkette zurück, die sich aus der Verkettung von „ s1 “ und „ s2 “ ergibt.

[since 6.9] QString operator+(QStringView lhs, const QString &rhs)

[since 6.9] QString operator+(const QString &lhs, QStringView rhs)

Gibt eine Zeichenkette zurück, die das Ergebnis der Verkettung von „ lhs “ und „ rhs “ ist.

Diese Funktionen wurden in Qt 6.9 eingeführt.

QString operator+(const QString &s1, const char *s2)

Gibt eine Zeichenkette zurück, die sich aus der Verkettung von s1 und s2 ergibt (s2 wird mithilfe der Funktion QString::fromUtf8() in Unicode konvertiert).

Siehe auch QString::fromUtf8().

QString operator+(const char *s1, const QString &s2)

Gibt eine Zeichenkette zurück, die sich aus der Verkettung von s1 und s2 ergibt (s1 wird mithilfe der Funktion QString::fromUtf8() in Unicode konvertiert).

Siehe auch QString::fromUtf8().

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner ist als die UTF-8-Kodierung von „ rhs “; andernfalls wird „ false “ zurückgegeben.

Bei dem Vergleich wird die Groß-/Kleinschreibung beachtet.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. In diesem Fall müssen Sie die Funktionen ` QString::fromUtf8()`, ` QString::fromLatin1()` oder ` QString::fromLocal8Bit()` explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein ` QString ` konvertieren möchten.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner ist als „ rhs “; andernfalls wird „ false “ zurückgegeben. Für „ lhs “ ≠ 0 entspricht dies „ compare(lhs, rhs) < 0 “.

Siehe auch Comparing Strings.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner ist als „ rhs “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator<()`.

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

Das Byte-Array „ rhs “ wird in ein „ QUtf8StringView “ konvertiert. Sind im Byte-Array NUL-Zeichen („\0 “) enthalten, werden diese bei der Transformation mit einbezogen.

Sie können diesen Operator „ QT_NO_CAST_FROM_ASCII “ beim Kompilieren Ihrer Anwendungen deaktivieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch „ QObject::tr()“ geleitet werden.

Diese Funktion überlädt ` QString::operator<()`.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner ist als „ rhs “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator<()`.

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

Gibt „ true “ zurück, wenn „string lhs “ lexikalisch kleiner ist als „string rhs “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt „ QString::operator<()“.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „string lhs “ lexikalisch kleiner ist als „string rhs “. Andernfalls wird „ false “ zurückgegeben.

Der Zeiger ` rhs ` vom Typ `const char` wird in einen ` QUtf8StringView` konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt „ QString::operator<()“.

QDataStream &operator<<(QDataStream &stream, const QString &string)

Schreibt den angegebenen ` string ` in den angegebenen ` stream`.

Siehe auch „Serialisierung vonQt-Datentypen“.

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch kleiner oder gleich der UTF-8-Kodierung von „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Bei dem Vergleich wird zwischen Groß- und Kleinschreibung unterschieden.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Sie müssen dann ` QString::fromUtf8()`, ` QString::fromLatin1()` oder ` QString::fromLocal8Bit()` explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein ` QString ` konvertieren möchten.

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

Gibt „ true “ zurück, wenn „string lhs “ lexikalisch kleiner oder gleich „string rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben. Für „ lhs “ != 0 entspricht dies „ compare(lhs, rhs) <= 0 “.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator<=()`.

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

Das Byte-Array „ rhs “ wird in ein „ QUtf8StringView “ konvertiert. Sollten im Byte-Array NUL-Zeichen („\0 “) enthalten sein, werden diese bei der Transformation mit einbezogen.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen QT_NO_CAST_FROM_ASCII definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch QObject::tr() geleitet werden.

Diese Funktion überlädt die Funktion ` QString::operator<=()`.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch kleiner oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator<=()`.

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

Der Zeiger vom Typ „ rhs const char“ wird in einen Zeiger vom Typ „ QUtf8StringView “ konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen die Option „ QT_NO_CAST_FROM_ASCII “ definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über „ QObject::tr()“ verarbeitet werden.

Diese Funktion überlädt „ QString::operator<=()“.

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ mit der UTF-8-Kodierung von „ rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Bei dem Vergleich wird die Groß-/Kleinschreibung beachtet.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Sie müssen dann ` QString::fromUtf8()`, ` QString::fromLatin1()` oder ` QString::fromLocal8Bit()` explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein ` QString ` konvertieren möchten.

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

Gibt „ true “ zurück, wenn „ lhs “ gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion „ QString::operator==()“.

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

Das Byte-Array „ rhs “ wird in ein „ QUtf8StringView “ konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch ` QObject::tr()` geleitet werden.

Gibt „ true “ zurück, wenn die Zeichenkette „ lhs “ lexikalisch gleich „ rhs “ ist. Andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion „ QString::operator==()“.

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

Gibt „ true “ zurück, wenn „ lhs “ gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion „ QString::operator==()“.

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

Gibt „ true “ zurück, wenn „string lhs “ mit „string rhs “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Hinweis: Diese Funktion behandelt Null-Zeichenketten genauso wie leere Zeichenketten; weitere Details finden Sie unter Distinction Between Null and Empty Strings.

Diese Funktion überlädt QString::operator==().

Siehe auch Comparing Strings.

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

Der Zeiger „ rhs const char“ wird in einen Zeiger „ QUtf8StringView “ umgewandelt.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt „ QString::operator==()“.

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

Gibt „ true “ zurück, wenn „ lhs “ gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben. Beachten Sie, dass keine Zeichenkette gleich „ lhs “ ist, wenn den Wert 0 hat.

Entspricht lhs != 0 && compare(lhs, rhs) == 0.

Diese Funktion überlädt „ QString::operator==()“.

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ lexikalisch größer ist als die UTF-8-Kodierung von „ rhs “; andernfalls wird „ false “ zurückgegeben.

Bei dem Vergleich wird die Groß-/Kleinschreibung berücksichtigt.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Sie müssen dann ` QString::fromUtf8()`, ` QString::fromLatin1()` oder ` QString::fromLocal8Bit()` explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein ` QString ` konvertieren möchten.

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

Gibt „ true “ zurück, wenn „string lhs “ lexikalisch größer ist als „string rhs “; andernfalls wird „ false “ zurückgegeben.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch größer ist als „ rhs “; andernfalls wird „ false “ zurückgegeben. Entspricht „ compare(lhs, rhs) > 0 “.

Siehe auch Comparing Strings.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch größer ist als „ rhs “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt „ QString::operator>()“.

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

Das Byte-Array „ rhs “ wird in „ QUtf8StringView “ konvertiert. Sollten im Byte-Array NUL-Zeichen („\0 “) enthalten sein, werden diese bei der Transformation berücksichtigt.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch ` QObject::tr()` geleitet werden.

Diese Funktion überlädt ` QString::operator>()`.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch größer ist als „ rhs “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator>()`.

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

Der Zeiger vom Typ „ rhs const char“ wird in einen Zeiger vom Typ „ QUtf8StringView “ konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen QT_NO_CAST_FROM_ASCII definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenketten über QObject::tr() verarbeitet werden.

Diese Funktion überlädt ` QString::operator>()`.

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

Gibt „ true “ zurück, wenn das Byte-Array „ lhs “ größer oder gleich der UTF-8-Kodierung von „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Bei dem Vergleich wird die Groß-/Kleinschreibung berücksichtigt.

Sie können diesen Operator deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen QT_NO_CAST_FROM_ASCII definieren. Sie müssen dann QString::fromUtf8(), QString::fromLatin1() oder QString::fromLocal8Bit() explizit aufrufen, wenn Sie das Byte-Array vor dem Vergleich in ein QString konvertieren möchten.

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

Gibt „ true “ zurück, wenn „string lhs “ lexikalisch größer oder gleich „string rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Siehe auch Comparing Strings.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch größer oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben. Für „ lhs “ ≠ 0 entspricht dies „ compare(lhs, rhs) >= 0 “.

Siehe auch „ Comparing Strings “.

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

Gibt „ true “ zurück, wenn „ lhs “ lexikalisch größer oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator>=()`.

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

Das Byte-Array „ rhs “ wird in ein „ QUtf8StringView “ konvertiert. Sollten im Byte-Array NUL-Zeichen („\0 “) enthalten sein, werden diese bei der Transformation mit einbezogen.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen durch ` QObject::tr()` geleitet werden.

Diese Funktion überlädt ` QString::operator>=()`.

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

Gibt ` true ` zurück, wenn ` lhs ` lexikalisch größer oder gleich ` rhs` ist; andernfalls wird ` false` zurückgegeben.

Diese Funktion überlädt die Funktion ` QString::operator>=()`.

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

Der Zeiger „ rhs const char“ wird in einen „ QUtf8StringView “ konvertiert.

Sie können diesen Operator deaktivieren, indem Sie beim Kompilieren Ihrer Anwendungen ` QT_NO_CAST_FROM_ASCII ` definieren. Dies kann beispielsweise nützlich sein, wenn Sie sicherstellen möchten, dass alle für den Benutzer sichtbaren Zeichenfolgen über ` QObject::tr()` verarbeitet werden.

Diese Funktion überlädt „ QString::operator>=()“.

QDataStream &operator>>(QDataStream &stream, QString &string)

Liest eine Zeichenkette aus dem angegebenen ` stream ` in das angegebene ` string` ein.

Siehe auch „Serialisierung vonQt-Datentypen“.

Makro-Dokumentation

QStringLiteral(str)

Das Makro generiert die Daten für eine ` QString ` aus dem String-Literal ` str ` zur Kompilierungszeit. Die Erstellung einer ` QString ` daraus ist in diesem Fall kostenlos, und die generierten String-Daten werden im schreibgeschützten Segment der kompilierten Objektdatei gespeichert.

Wenn Ihr Code wie folgt aussieht:

// hasAttribute takes a QString argument
if (node.hasAttribute("http-contents-length")) {
    //...
}

dann wird ein temporäres ` QString ` erstellt, das als Parameter an die Funktion ` hasAttribute ` übergeben wird. Dies kann recht aufwendig sein, da es eine Speicherzuweisung sowie das Kopieren und Konvertieren der Daten in die interne Kodierung von ` QString` beinhaltet.

Dieser Aufwand lässt sich vermeiden, indem stattdessen `QStringLiteral` verwendet wird:

if (node.hasAttribute(QStringLiteral(u"http-contents-length"))){
    //...
}

In diesem Fall werden die internen Daten von ` QString` bereits zur Kompilierungszeit generiert; zur Laufzeit finden weder eine Konvertierung noch eine Speicherzuweisung statt.

Die Verwendung von `QStringLiteral` anstelle eines einfachen C++-Zeichenfolgenliterals in doppelten Anführungszeichen kann die Erstellung von ` QString `-Instanzen aus zur Kompilierungszeit bekannten Daten erheblich beschleunigen.

Hinweis: „ QLatin1StringView “ kann dennoch effizienter sein als „QStringLiteral“, wenn die Zeichenkette an eine Funktion übergeben wird, die eine Überladung für „ QLatin1StringView “ besitzt und diese Überladung die Konvertierung zu „ QString “ vermeidet. Beispielsweise kann „QString::operator==()“ direkt mit einem „ QLatin1StringView “ vergleichen:

if (attribute.name() == "http-contents-length"_L1){
    //...
}

Hinweis: Einige Compiler weisen Fehler bei der Kodierung von Zeichenfolgen auf, die Zeichen außerhalb des US-ASCII-Zeichensatzes enthalten. Stellen Sie in solchen Fällen sicher, dass Sie Ihrer Zeichenfolge das Präfix „ u “ voranstellen. Andernfalls ist dies optional.

Hinweis: QStringLiteral ist austauschbar mit operator""_s. Letzteres spart Tipparbeit, wenn viele Zeichenfolgenliterale im Code vorkommen.

Siehe auch „ QByteArrayLiteral “.

QT_NO_CAST_FROM_ASCII

Deaktiviert die automatische Konvertierung von 8-Bit-Zeichenketten (char *) in Unicode-QStrings sowie von 8-Bit- char -Typen (char und unsigned char) in QChar.

Siehe auch QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII und QT_NO_CAST_FROM_BYTEARRAY.

QT_NO_CAST_TO_ASCII

Deaktiviert die automatische Konvertierung von „ QString “ in 8-Bit-Zeichenfolgen (char *).

Siehe auch QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII und QT_NO_CAST_FROM_BYTEARRAY.

QT_RESTRICTED_CAST_FROM_ASCII

Deaktiviert die meisten automatischen Konvertierungen von Quellliteralen und 8-Bit-Daten in Unicode-QStrings, erlaubt jedoch die Verwendung der Konstruktoren „ QChar(char) “ und „ QString(const char (&ch)[N] “ sowie des Zuweisungsoperators „ QString::operator=(const char (&ch)[N]) “. Dadurch werden die meisten Vorteile der Typsicherheit von „ QT_NO_CAST_FROM_ASCII “ genutzt, ohne dass der Benutzercode Zeichen- und String-Literale mit „ QLatin1Char “, „ QLatin1StringView “ oder Ähnlichem umschließen muss.

Die Verwendung dieses Makros in Verbindung mit Quellzeichenfolgen außerhalb des 7-Bit-Bereichs, Nicht-Literalen oder Literalen mit eingebetteten NUL-Zeichen ist undefiniert.

Siehe auch QT_NO_CAST_FROM_ASCII und QT_NO_CAST_TO_ASCII.

const char *qPrintable(const QString &str)

Gibt „ str “ als „ const char * “ zurück. Dies entspricht „ str “, „toLocal8Bit()“ und „constData()“.

Der Zeiger vom Typ „char“ ist nach der Anweisung, in der „qPrintable()“ verwendet wird, ungültig. Dies liegt daran, dass das von „ QString::toLocal8Bit()“ zurückgegebene Array den Gültigkeitsbereich verlässt.

Hinweis: qDebug(), qInfo(), qWarning(), qCritical() und qFatal() erwarten, dass %s-Argumente UTF-8-kodiert sind, während qPrintable() in die lokale 8-Bit-Kodierung konvertiert. Daher sollte qUtf8Printable() anstelle von qPrintable() für die Protokollierung von Zeichenketten verwendet werden.

Siehe auch qUtf8Printable().

const wchar_t *qUtf16Printable(const QString &str)

Gibt „ str “ als „ const ushort * “ zurück, wandelt den Wert jedoch in „ const wchar_t * “ um, um Warnungen zu vermeiden. Dies entspricht „ str.utf16()“ plus einigen Typumwandlungen.

Das Einzige, was Sie mit dem Rückgabewert dieses Makros sinnvoll tun können, ist, ihn an ` QString::asprintf()` zu übergeben, um ihn für eine Konvertierung von ` %ls ` zu verwenden. Insbesondere ist der Rückgabewert kein gültiger ` const wchar_t*`!

Im Allgemeinen ist der Zeiger nach der Anweisung, in der `qUtf16Printable()` verwendet wird, ungültig. Dies liegt daran, dass der Zeiger möglicherweise aus einem temporären Ausdruck stammt, der seinen Gültigkeitsbereich verlässt.

Beispiel:

qWarning("%ls: %ls", qUtf16Printable(key), qUtf16Printable(value));

Siehe auch „ qPrintable()“, „ qDebug()“, „ qInfo()“, „ qWarning()“, „ qCritical()“ und „ qFatal()“.

const char *qUtf8Printable(const QString &str)

Gibt „ str “ als „ const char * “ zurück. Dies entspricht „ str “, „toUtf8()“ und „constData()“.

Der Zeiger vom Typ „char“ ist nach der Anweisung, in der qUtf8Printable() verwendet wird, ungültig. Dies liegt daran, dass das von QString::toUtf8() zurückgegebene Array seinen Gültigkeitsbereich verlässt.

Beispiel:

qWarning("%s: %s", qUtf8Printable(key), qUtf8Printable(value));

Siehe auch qPrintable(), qDebug(), qInfo(), qWarning(), qCritical() und qFatal().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.