Element:«Corvus Corax

advertisement
Qt
-кроссплатформенный инструментарий
разработки ПО на языке
программирования С++




1994 – основана компания Trolltech,
разработаны версии под Unix и Windows
1997 – библиотека Qt 1.2 легла в основу
среды KDE(сокращение от K Desktop
Environment)
2001 – вышла Qt 3.0 для Unix, Linux, Mac и
Windows
2008 – Trolltech → Nokia





C++ - язык самой библиотеки
Python
Ruby
Java
PHP





Unix, Linux
Windows XP, Vista, 7
Windows Mobile
Android
iOS



KDE- это разновидность графических
интерфейсов ,разработанных для рабочего
стола.
Skype
Google Earth - — проект компании google, в
рамках которого в сети интернет были
размещены спутниковые изображения всей
земной поверхности.
 определённая
модель разработки
приложений, определённый каркас их
структуры.
 существенно снижает частоту таких трудно
отлавливаемых ошибок в приложениях,
как утечки памяти, необработанные
исключения или незакрытые файлы
 Уменьшает объём кода
 Кроссплатформенность
-
классы, обеспечивающие разработку
оконного графического интерфейса
пользователя
 - классы, реализующие работу с потоками,
объектами синхронизации
процессов/пото- ков;
 - классы для работы с 2-х и 3-х мерной
графикой, классы реализующие
поддержку некоторых графических
форматов хранения;
 - реализация динамических массивов в
виде шаблонов C++;
 Слот
- метод, вызываемый автоматически,
при испускании присоединенного к нему
сигнала
 Сигнал-сообщение, испускаемое при
наступлении какого-то события, например
нажатия на кнопку. Может передаваться
слоту или другому сигналу.
 Как
связать сигнал со слотом ?
При помощи функции QObject::connect()
Функция QObject::connect() выглядит
следующим образом:
QObject::connect(отправитель, SIGNAL(сигнал(список
параметров сигнала)), получатель, SLOT(список
параметров сигнала));

это универсальные шаблонные
классы, предназначенные для
хранения элементов заданного типа
в смежных областях памяти.
Пример:
QVector<int> vec;
vec.push_back(10); // добавляем в конец вектора элемент
vec.push_back(20);
vec.push_back(30);
qDebug() << vec;
Будет выведено — QVector(10,20,30).
Специфические операции для работы со списками:

move() — Перемещает элемент с одной позиции на другую.

removeFirst() — Выполняет удаление первого элемента списка.

removeLast() — Выполняет удаление последнего элемента списка.

swap() — Меняет местами два элемента списка на указанных
позициях.

takeAt() — Возвращает элемент на указанной позиции и удаляет его
из списка.

takeFirst() — Возвращает первый элемент и удаляет его из списка.

takeLast() — Возвращает последний элемент и удаляет его из списка.

toSet() — Возвращает контейнер QSet с данными содержащимися в
списке.

toStdList() — Возвращает стандартный список STL std::List с
элементами из списка.

toVector() — Возвращает вектор QVector с данными содержащимися в
списке.
Пример : обход списка
QList<int> list;
list << 10 << 20 << 30;
QValueList<int>::iterator it = list.begin(); //
создаем итератор и переводим его в
начало списка
while (it != list.end()) { qDebug() <<
"Element:" << *it; ++it; }
В консоли будет отображено:
Element:10
Element:20
Element:30
*первым удаляется элемент, который был вставлен позже всех
остальных.
pushing – «проталкивание»
poping- «выталкивание»
Пример использования стека:
QStack<QString> stk;
stk.push("Era"); // наполняем стек добавляя в него
новые элементы
stk.push("Corvus Corax");
stk.push("Gathering");
while (!stk.empty()) {
qDebug() << "Element:" << stk.pop();
}
В консоли будет:
Element:«Gathering»
Element:«Corvus Corax»
Element:«Era»
Очередь реализует структуру данных,
работающую по принципу — первым пришел,
первым ушел.
Пример:
QQueue<QString> que;
que.enqueue("Era");
que.enqueue("Corvus Corax");
que.enqueue("Gathering");
while (!que.empty()) {
qDebug() << "Element:" << que.dequeue();
}
В консоли будет:
Element:«Era»
Element:«Corvus Corax»
Element:«Gathering»
Download