📄 qstring.h
字号:
QByteArray toLocal8Bit() const Q_REQUIRED_RESULT; QVector<uint> toUcs4() const Q_REQUIRED_RESULT; static QString fromAscii(const char *, int size = -1); static QString fromLatin1(const char *, int size = -1); static QString fromUtf8(const char *, int size = -1); static QString fromLocal8Bit(const char *, int size = -1); static QString fromUtf16(const ushort *, int size = -1); static QString fromUcs4(const uint *, int size = -1); static QString fromRawData(const QChar *, int size); int toWCharArray(wchar_t *array) const; static QString fromWCharArray(const wchar_t *, int size = -1); QString &setUnicode(const QChar *unicode, int size); inline QString &setUtf16(const ushort *utf16, int size); // ### Qt 5: merge these two functions int compare(const QString &s) const; int compare(const QString &s, Qt::CaseSensitivity cs) const; int compare(const QLatin1String &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; // ### Qt 5: merge these two functions static inline int compare(const QString &s1, const QString &s2) { return s1.compare(s2); } static inline int compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs) { return s1.compare(s2, cs); } static inline int compare(const QString& s1, const QLatin1String &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) { return s1.compare(s2, cs); } static inline int compare(const QLatin1String& s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) { return -s2.compare(s1, cs); } int localeAwareCompare(const QString& s) const; static int localeAwareCompare(const QString& s1, const QString& s2) { return s1.localeAwareCompare(s2); } short toShort(bool *ok=0, int base=10) const; ushort toUShort(bool *ok=0, int base=10) const; int toInt(bool *ok=0, int base=10) const; uint toUInt(bool *ok=0, int base=10) const; long toLong(bool *ok=0, int base=10) const; ulong toULong(bool *ok=0, int base=10) const; qlonglong toLongLong(bool *ok=0, int base=10) const; qulonglong toULongLong(bool *ok=0, int base=10) const; float toFloat(bool *ok=0) const; double toDouble(bool *ok=0) const; QString &setNum(short, int base=10); QString &setNum(ushort, int base=10); QString &setNum(int, int base=10); QString &setNum(uint, int base=10); QString &setNum(long, int base=10); QString &setNum(ulong, int base=10); QString &setNum(qlonglong, int base=10); QString &setNum(qulonglong, int base=10); QString &setNum(float, char f='g', int prec=6); QString &setNum(double, char f='g', int prec=6); static QString number(int, int base=10); static QString number(uint, int base=10); static QString number(long, int base=10); static QString number(ulong, int base=10); static QString number(qlonglong, int base=10); static QString number(qulonglong, int base=10); static QString number(double, char f='g', int prec=6); bool operator==(const QString &s) const; bool operator<(const QString &s) const; inline bool operator>(const QString &s) const { return s < *this; } inline bool operator!=(const QString &s) const { return !operator==(s); } inline bool operator<=(const QString &s) const { return !operator>(s); } inline bool operator>=(const QString &s) const { return !operator<(s); } bool operator==(const QLatin1String &s) const; bool operator<(const QLatin1String &s) const; bool operator>(const QLatin1String &s) const; inline bool operator!=(const QLatin1String &s) const { return !operator==(s); } inline bool operator<=(const QLatin1String &s) const { return !operator>(s); } inline bool operator>=(const QLatin1String &s) const { return !operator<(s); } // ASCII compatibility#ifndef QT_NO_CAST_FROM_ASCII inline QT_ASCII_CAST_WARN_CONSTRUCTOR QString(const char *ch) : d(fromAscii_helper(ch)) {} inline QT_ASCII_CAST_WARN_CONSTRUCTOR QString(const QByteArray &a) : d(fromAscii_helper(a.constData(), qstrnlen(a.constData(), a.size()))) {} inline QT_ASCII_CAST_WARN QString &operator=(const char *ch) { return (*this = fromAscii(ch)); } inline QT_ASCII_CAST_WARN QString &operator=(const QByteArray &a) { return (*this = fromAscii(a.constData(), qstrnlen(a.constData(), a.size()))); } inline QT_ASCII_CAST_WARN QString &operator=(char c) { return (*this = QChar::fromAscii(c)); } // these are needed, so it compiles with STL support enabled inline QT_ASCII_CAST_WARN QString &prepend(const char *s) { return prepend(QString::fromAscii(s)); } inline QT_ASCII_CAST_WARN QString &prepend(const QByteArray &s) { return prepend(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } inline QT_ASCII_CAST_WARN QString &append(const char *s) { return append(QString::fromAscii(s)); } inline QT_ASCII_CAST_WARN QString &append(const QByteArray &s) { return append(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } inline QT_ASCII_CAST_WARN QString &operator+=(const char *s) { return append(QString::fromAscii(s)); } inline QT_ASCII_CAST_WARN QString &operator+=(const QByteArray &s) { return append(QString::fromAscii(s.constData(), qstrnlen(s.constData(), s.size()))); } inline QT_ASCII_CAST_WARN QString &operator+=(char c) { return append(QChar::fromAscii(c)); } inline QT_ASCII_CAST_WARN bool operator==(const char *s) const; inline QT_ASCII_CAST_WARN bool operator!=(const char *s) const; inline QT_ASCII_CAST_WARN bool operator<(const char *s) const; inline QT_ASCII_CAST_WARN bool operator<=(const char *s2) const; inline QT_ASCII_CAST_WARN bool operator>(const char *s2) const; inline QT_ASCII_CAST_WARN bool operator>=(const char *s2) const; inline QT_ASCII_CAST_WARN bool operator==(const QByteArray &s) const; inline QT_ASCII_CAST_WARN bool operator!=(const QByteArray &s) const; inline QT_ASCII_CAST_WARN bool operator<(const QByteArray &s) const { return *this < QString::fromAscii(s.constData(), s.size()); } inline QT_ASCII_CAST_WARN bool operator>(const QByteArray &s) const { return *this > QString::fromAscii(s.constData(), s.size()); } inline QT_ASCII_CAST_WARN bool operator<=(const QByteArray &s) const { return *this <= QString::fromAscii(s.constData(), s.size()); } inline QT_ASCII_CAST_WARN bool operator>=(const QByteArray &s) const { return *this >= QString::fromAscii(s.constData(), s.size()); }#endif typedef QChar *iterator; typedef const QChar *const_iterator; typedef iterator Iterator; typedef const_iterator ConstIterator; iterator begin(); const_iterator begin() const; const_iterator constBegin() const; iterator end(); const_iterator end() const; const_iterator constEnd() const; inline QString &inline_append(QChar ch) { if (d->ref != 1 || d->size + 1 > d->alloc) realloc(grow(d->size + 1)); d->data[d->size++] = ch.unicode(); d->data[d->size] = '\0'; return *this; } // STL compatibility inline void push_back(QChar c) { append(c); } inline void push_back(const QString &s) { append(s); } inline void push_front(QChar c) { prepend(c); } inline void push_front(const QString &s) { prepend(s); }#ifndef QT_NO_STL static inline QString fromStdString(const std::string &s); inline std::string toStdString() const;# ifdef qdoc static inline QString fromStdWString(const std::wstring &s); inline std::wstring toStdWString() const;# else# ifndef QT_NO_STL_WCHAR static inline QString fromStdWString(const QStdWString &s); inline QStdWString toStdWString() const;# endif // QT_NO_STL_WCHAR# endif // qdoc#endif // compatibility struct Null { }; static const Null null; inline QString(const Null &): d(&shared_null) { d->ref.ref(); } inline QString &operator=(const Null &) { *this = QString(); return *this; } inline bool isNull() const { return d == &shared_null; }#ifdef QT3_SUPPORT inline QT3_SUPPORT const char *ascii() const { return ascii_helper(); } inline QT3_SUPPORT const char *latin1() const { return latin1_helper(); } inline QT3_SUPPORT QByteArray utf8() const { return toUtf8(); } inline QT3_SUPPORT QByteArray local8Bit() const{ return toLocal8Bit(); } inline QT3_SUPPORT void setLength(int nl) { resize(nl); } inline QT3_SUPPORT QString copy() const { return *this; } inline QT3_SUPPORT QString &remove(QChar c, bool cs) { return remove(c, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT QString &remove(const QString &s, bool cs) { return remove(s, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT QString &replace(QChar c, const QString &after, bool cs) { return replace(c, after, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT QString &replace(const QString &before, const QString &after, bool cs) { return replace(before, after, cs?Qt::CaseSensitive:Qt::CaseInsensitive); }#ifndef QT_NO_CAST_FROM_ASCII inline QT3_SUPPORT QString &replace(char c, const QString &after, bool cs) { return replace(QChar::fromAscii(c), after, cs ? Qt::CaseSensitive : Qt::CaseInsensitive); } // strange overload, required to avoid GCC 3.3 error inline QT3_SUPPORT QString &replace(char c, const QString &after, Qt::CaseSensitivity cs) { return replace(QChar::fromAscii(c), after, cs ? Qt::CaseSensitive : Qt::CaseInsensitive); }#endif inline QT3_SUPPORT int find(QChar c, int i = 0, bool cs = true) const { return indexOf(c, i, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT int find(const QString &s, int i = 0, bool cs = true) const { return indexOf(s, i, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT int findRev(QChar c, int i = -1, bool cs = true) const { return lastIndexOf(c, i, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT int findRev(const QString &s, int i = -1, bool cs = true) const { return lastIndexOf(s, i, cs?Qt::CaseSensitive:Qt::CaseInsensitive); }#ifndef QT_NO_REGEXP inline QT3_SUPPORT int find(const QRegExp &rx, int i=0) const { return indexOf(rx, i); } inline QT3_SUPPORT int findRev(const QRegExp &rx, int i=-1) const { return lastIndexOf(rx, i); }#endif inline QT3_SUPPORT QBool contains(QChar c, bool cs) const { return contains(c, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT QBool contains(const QString &s, bool cs) const { return contains(s, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT bool startsWith(const QString &s, bool cs) const { return startsWith(s, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT bool endsWith(const QString &s, bool cs) const { return endsWith(s, cs?Qt::CaseSensitive:Qt::CaseInsensitive); } inline QT3_SUPPORT QChar constref(uint i) const { return at(i); } QT3_SUPPORT QChar &ref(uint i); inline QT3_SUPPORT QString leftJustify(int width, QChar fill = QLatin1Char(' '), bool trunc=false) const { return leftJustified(width, fill, trunc); } inline QT3_SUPPORT QString rightJustify(int width, QChar fill = QLatin1Char(' '), bool trunc=false) const { return rightJustified(width, fill, trunc); } inline QT3_SUPPORT QString lower() const { return toLower(); } inline QT3_SUPPORT QString upper() const { return toUpper(); } inline QT3_SUPPORT QString stripWhiteSpace() const { return trimmed(); } inline QT3_SUPPORT QString simplifyWhiteSpace() const { return simplified(); } inline QT3_SUPPORT QString &setUnicodeCodes(const ushort *unicode_as_ushorts, int size) { return setUtf16(unicode_as_ushorts, size); } inline QT3_SUPPORT const ushort *ucs2() const { return utf16(); } inline static QT3_SUPPORT QString fromUcs2(const ushort *unicode, int size = -1) { return fromUtf16(unicode, size); } inline QT3_SUPPORT QString &setAscii(const char *str, int len = -1) { *this = fromAscii(str, len); return *this; } inline QT3_SUPPORT QString &setLatin1(const char *str, int len = -1) { *this = fromLatin1(str, len); return *this; }protected: friend class QObject; const char *ascii_helper() const; const char *latin1_helper() const;public:#ifndef QT_NO_CAST_TO_ASCII inline QT3_SUPPORT operator const char *() const { return ascii_helper(); }private: QT3_SUPPORT operator QNoImplicitBoolCast() const;public:#endif#endif bool isSimpleText() const { if (!d->clean) updateProperties(); return d->simpletext; } bool isRightToLeft() const { if (!d->clean) updateProperties(); return d->righttoleft; }private:#if defined(QT_NO_CAST_FROM_ASCII) && !defined(Q_NO_DECLARED_NOT_DEFINED) QString &operator+=(const char *s); QString &operator+=(const QByteArray &s); QString(const char *ch); QString(const QByteArray &a); QString &operator=(const char *ch); QString &operator=(const QByteArray &a);#endif struct Data { QBasicAtomic ref; int alloc, size; ushort *data; ushort clean : 1; ushort simpletext : 1; ushort righttoleft : 1; ushort asciiCache : 1; ushort capacity : 1; ushort reserved : 11; ushort array[1]; }; static Data shared_null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -