Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование БД.docx
Скачиваний:
74
Добавлен:
08.03.2016
Размер:
712.24 Кб
Скачать
      1. Модули Qt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. INCLUDEPATH += "../../../include"

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

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

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

  9. HEADERS += \

  10. mainwindow.h \

  11. ...

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

  13. SOURCES += \

  14. mainwindow.cpp \

  15. ...

  16. # Формы

  17. FORMS += \

  18. mainwindow.ui \

  19. ...

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

  21. RESOURCES += \

  22. resources.qrc \

  23. scripts.qrc

      1. Сигналы и слоты

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

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

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

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

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

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

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

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

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