Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Собственная система сборки Qt




Базовые сведения о Qt

2.3.1 Введение

Qt (произносится (кьют) как «cute» или неофициально Q-T (кью-ти)) — кроссплатформенный инструментарий разработки ПО на языке программирования C++. Отличается хорошей документацией, стабильностью, простотой освоения и написания кода.

Разработчики:

- Qt-project (http://qt-project.org/),

- Digia – финский разработчик программного обеспечения (http://www.digia.com/).

Qt выпускается под тремя лицензиями: GNU LGPL или GNU GPL и коммерческая

В настоящее время Qt предоставляет использующему её программисту целостный фреймворк (framework), позволяющий при написании большей части приложения использовать только «родные» классы Qt и практически полностью отказаться от написания системно-зависимого кода, использования системных вызовов (будь то Win32 API или Unix system calls) или от изобретения собственных кросс-платформенных обёрток и «велосипедов». Классы Qt покрывают почти все потребности программиста. Qt позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. По своим возможностям и богатству библиотека Qt сравнима с.NET Framework или с системой классов Java 2 EE. ·

2.3.2 Модули Qt

Библиотека разделена на несколько модулей, вот некоторые из них (для пятой версии):

QtCore – классы ядра библиотеки, используемые другими модулями;

QtGui – компоненты графического интерфейса;

QtWidgets – классы виджетов для создания граф. интерфейса пользователя.

QtMultimedia – классы, поддерживающие функциональность аудио, видео, радио и камеры;

QtNetwork – набор классов для сетевого программирования;

QtOpenGL – набор классов для работы с OpenGL;

QtSql – набор классов для работы с БД с использованием языка SQL.

QtScript – классы для работы с Qt Scripts (специальным скриптовым языком Qt, похожем на JavaScript);

QtXml – модуль для работы с XML, поддерживается SAX и DOM модели работы;

QtWebKit – модуль с элементами веб-браузера;

Qt Quick – модуль, предоставляющий декларативный фреймворк для создания динамичных, настраиваемых пользовательских интерфейсов.

Этот список модулей далеко не полный.·

Библиотека использует собственную систему сборки, именуемую QMake. QMake – это специальная утилита, использующая файлы проекта с расширением «.pro», в которых собрана информация о том, какие файлы будут скомпилированы, по каким путям искать заголовочные файлы и много другой информации. Пример.pro файла:

1. TEMPLATE = app # тип проекта - приложение

2. TARGET = flipbox # имя исполняемого файла

3. QT += core gui widgets # используемые модули

4.

5. # Пути поиска заголовочных файлов

6. INCLUDEPATH += "../../../include"

7. # Подключаемые библиотеки

8. LIBS += -L"../../../lib/Lib"

9. # Заголовочные файлы

10. HEADERS += \

11. mainwindow.h \

12....

13. # Исходные файлы

14. SOURCES += \

15. mainwindow.cpp \

16....

17. # Формы

18. FORMS += \

19. mainwindow.ui \

20....

21. # Файлы ресурсов

22. RESOURCES += \

23. resources.qrc \

24. scripts.qrc

·

2.3.4 Сигналы и слоты

Отличительная особенность Qt от других библиотек – использование Meta Object Compiler (MOC) – предварительной системы обработки исходного кода (в общем-то, Qt – это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы.

Сигналы и слоты используются для коммуникации между объектами. Механизм сигналов и слотов главная особенность Qt и вероятно та часть, которая отличаетcя от особенностей, предоставляемых другими фреймворками.

В программировании графического интерфейса, когда мы меняем один виджет, мы часто хотим что бы другой виджет получил об этом уведомление. В общем случае, мы хотим что бы объекты любого типа могла общаться с другими. Например, если пользователь нажимает кнопку Закрыть, мы вероятно хотим что бы была вызвана функция окна close().

Сигнал вырабатывается когда происходит определенное событие. Слот это функция, которая вызывается в ответ на определенный сигнал. Виджеты Qt имеют много предопределенных сигналов и слотов, но мы всегда можем сделать дочерний класс и добавить наши сигналы и слоты в нем.

Механизм сигналов и слотов типобезопасен. Сигнатура сигнала должна совпадать с сигнатурой слота-получателя.·

Класс, который вырабатывает сигнал не знает и не заботится о том, какие слоты его получат. Механизм сигналов и слотов Qt гарантирует, что если мы подключим сигнал к слоту, слот будет вызван с параметрами сигнала в нужное время. Сигналы и слоты могут принимать любое число аргументов любого типа. Все классы, наследуемые от QObject или его дочерних классов (например, QWidget) могут содержать сигналы и слоты. Сигналы вырабатываются объектами когда они изменяют свое состояние так, что это может заинтересовать другие объекты. При этом он не знает и не заботится о том что у его сигнала может не быть получателя.

Мы можем подключать к одному слоту столько сигналов, сколько захотим, также один сигнал может быть подключен к стольким слотам, сколько необходимо (рисунок 10).

Рисунок 10 – Администратор источников данных ODBC. Диалог создания нового источника данных

Сигналы и слоты вместе составляют мощный механизм создания компонентов.·




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 689; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.