Qt/FAQ/QtCore

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

QtCore - ядро не-GUI классов, используемое другими модулями

Строки

За обработку строк в Qt отвечает класс QString, который хранит строки в Unicode в виде последовательностей 16-битовых символов QChar. Строки QString можно рассматривать как вектор символов QChar. При использовании QString не стоит беспокоится о таких вещах, как выделение достаточного объёма памяти или гарантирование завершения данных символом '\0'. Внутри QString могут быть символы '\0', функция length() вернет размер строки, включаю символы '\0'.

Манипуляции со строками

Класс QString содержит operator+, который обеспечивает конкатенацию двух строк и operator+= для добавления одной строки в конец другой:

   QString sz, sz1="cross", sz2="platform";
   sz = sz1 + sz2; // sz == "crossplatform"
   sz += ".ru";    // sz == "crossplatform.ru"

Также есть функция append, которая аналогична operator+=:

   QString sz;
   sz.append( "crossplatform");
   sz.append( ".ru");
   // sz == "crossplatform.ru"

Если функция append добавляет одну строку в конец другой, то функция prepend добавляет одну строку в начало другой:

   sz.prepend( "http://");
   // sz == "http://crossplatform.ru"

Также можно добавить нужную нам строку в любую позицию другой строки:

   sz.insert( 7, QString("wiki."));
   // sz == "http://wiki.crossplatform.ru"

Для совместимости с STL в классе QString введены функции push_back и push_front, которые аналогичны функциям append и prepend, соответственно:

   QString sz = "crossplatform";
   sz.push_back( ".ru");
   // sz == "crossplatform.ru"
   sz.push_front( "http://");
   // sz == "http://crossplatform.ru"

Если нужно удалить часть строки, то для этого есть функция remove:

     QString sz = "http://wiki.crossplatform.ru";
     sz.remove(7, 5);
     // sz == "http://crossplatform.ru"

или это же можно сделать так:

     QString sz = "http://wiki.crossplatform.ru";
     sz.remove( "wiki.");
     // sz == "http://crossplatform.ru"


Кодировка

Массивы

Контейнеры

Дата и время

Регулярные выражения

События

Процессы и синхронизация

Работа с плагинами

Работа с файлами и директориями