Qt 4
Класът QString предоставя низ от Unicode символи. Освен това.
Коментар: Всички функции в този клас са с ретранслация, с изключение на ascii (), latin1 (), utf8 () и local8Bit (), които не се връщат обратно.
Отворени типове
Отворени функции
Статични публични членове
Асоциирани нечленове на класа
Подробно описание
QString клас предоставя Unicode символен низ.
QString съхранява низ от 16-битов QChar, където всеки QChar съответства на един Unicode 4.0 символ. (Unicode символите със стойности на кода по-големи от 65535 се съхраняват с помощта на сурогатни двойки, т.е. две последователни QChar.)
Unicode е международният стандарт, който поддържа повечето системи за писане, използвани днес. Това е разширение за ASCII и Latin-1 (ISO 8859-1), където всички ASCII/Latin-1 символи са налични на позиции с един и същ код.
В допълнение към QString, Qt предоставя и клас QByteArray за съхраняване на сурови байтове и традиционни низови терминирани низове. В повечето случаи QString е необходимият клас за използване. Той се използва в приложните програмни интерфейси на Qt, а поддръжката на Unicode гарантира, че вашите приложения могат лесно да бъдат преведени на друг език, ако в даден момент искате да разширите пазара на разпространение. Двата основни случая, когато QByteArray е подходящ, са когато трябва да съхранявате необработени двоични данни и когато използването на памет е критично (например в Qt за вградени Linux системи).
Инициализация на низ
Един от начините за инициализиране на QString е просто предаване на const char * на конструктора. Например, следният код създава 5-байт QString, съдържащ данни "Hello":
QString преобразува данните const char * в Unicode, използвайки функцията fromAscii (). По подразбиране fromAscii () третира символи над 128 като символи Latin-1, но това може да бъде променено чрез извикване на QTextCodec: setCodecForCStrings ().
Във всички функции на QString, които приемат параметри const char *, const char * се интерпретира като класически нулев край на низ в стил C. Допуска се const char * да бъде 0.
Можете също така да предоставите низа с данни като QChar масив:
QString прави дълбоко копие на данните на QChar, така че можете да ги промените по-късно, без да причинявате странични ефекти. (Ако поради съображения за производителност не искате задълбочено копие на данните за символи, вместо това използвайте QString: fromRawData ().)
Друг подход е да зададете размера на низа чрез resize () и да инициализирате данни по знак по знак. QString използва индекси, базирани на 0, както е при C ++ масивите. Можете да използвате оператор [] () за достъп до символ на определена позиция. В неконстантни низове операторът [] () връща символна препратка, която може да се използва от лявата страна на операцията за присвояване. Например:
За достъп само за четене използвайте функцията at ():
QString може да съдържа символа '\ 0' (QChar: Null). Функцията size () винаги връща размера на целия низ, включително съдържащите се символи '\ 0'.
След извикването на функцията resize (), добавените символи ще съдържат недефинирани стойности. За да инициализирате всички символи до определена стойност, извикайте функцията fill ().
QString предоставя много претоварени функции, предназначени да опростят използването на низове. Например, ако искате да сравните QString с низов литерал, можете да напишете код по този начин и той ще работи както се очаква:
Можете също да предавате низови литерали на функции, които приемат QStrings като аргументи, като извикате конструктора QString (const char *). По същия начин можете да предадете QString на функции, които приемат аргумент const char *, използвайки макроса qPrintable (), който връща дадения QString като const char *. Това е еквивалентно на извикване на .toLocal8Bit (). ConstData ().
Управление на низови данни
QString предоставя следните основни функции за промяна на данни за символи: append (), prepend (), insert (), replace () и remove (). Например:
Ако изграждате QString постепенно и предварително знаете колко символа ще съдържа QString, можете да се обадите на reserve (), като помолите QString да разпредели предварително определен обем памет. Можете също така да се обадите на capacity (), за да разберете колко памет QString всъщност е разпределила.