Пример использования OpenGL для отрисовки в окне и обработки событий мыши.
Иллюстрация системы сигналов и слотов.
Пример небольшого приложения с графическим пользовательским интерфейсом, описанного кодом.
Пример приложения с различными элементами пользовательского интерфейса.
Пример организации проекта с несколькими конфигурациями
Возьмём следующий пример:
Mode Name
---- ----
d----- include/ # заголовочные файлы проекта (API или интерфейс проекта)
d----- src/ # исходные файлы проекта
d----- test/ # вспомогательные и исходные файлы с тестами
d----- resources/ # директория с ресурсами
------ qt_project.pro # файл qmake проекта
------ resources.qrc # файл ресурсов
Проект лабораторной работы состоит из двух частей: проект и набор тестов. Проект состоит из заголовочных файлов и файлов с исходным кодом, включая main.cpp, содержащий точку входа программы. Unit-тесты для тестирования проекта располагаются в файлах в директории test/, точка входа для запуска тестов располагается в файле tests.cpp.
Если проект не включает в себя unit-тесты, то директория test/ отсутствует.
Описание проекта
В qmake-проекте можно описать несколько конфигураций. Ниже приведёна общая часть для обоих конфигураций: приложения и тестов.
# Template: результат сборки исполняемый файл (app), библиотека или плагин.
TEMPLATE += app
# Configs: определяет конфигурацию проекта и параметры компилятора.
CONFIG += c++latest
CONFIG += strict_c++
# Qt module: модули Qt, которые будут использоваться в проекте.
QT += core
# INCLUDEPATH: директории с заголовочными файлами. Аналог `-I` clang-а.
INCLUDEPATH += \
include/
# HEADERS: список заголовочных файлов, используемых в проекте.
HEADERS += \
include/common.h
# SOURCES: список файлов с исходным кодом, используемых в проекте.
SOURCES += \
src/common.cpp
# RESOURCES: файл с ресурсами (QtResources).
RESOURCES += \
resources.qrc
Осталось указать специфичные для наших конфигураций опции и файлы.
После описания файла проекта необходимо настроить конфигурации сборки.
Для этого после открытия проекта следует перейти в раздел Projects, выбрать интересующий Kit и для него перейти в Build.
Настроим Debug и Release как solution, начнём с Debug. Сверху в Edit build configuration выбираем Debug. Затем необходимо в Build Steps дополнить первый шаг qmake аргументом про нашу конфигурацию. Справа от qmake: qmake qt_project.pro нажимаем на Details, и в Additional arguments: дописываем CONFIG+=solution:
Для настройки Release конфигурации действия аналогичны, в Edit build configuration выбираем Release.
Настроим Debug и Release как tests, начнём с Debug. В таком случае необходимо создать новые build configuration. Сверху выбираем Add - Debug и задаём уникальное имя для тестовой debug конфигурации.
После создания автоматически произойдёт переключение на созданную конфигурацию. Остаётся лишь указать аргументы для этой конфигурации. В нашем случае:
CONFIG+=tests GTEST_ROOT="<path/to/googletest>"
GTEST_ROOT – переменная, которая используется в нашем примере проекта; содержит путь до корня googletests.
По окончании настройки конфигураций в левом нижнем меню при выборе Kit будут доступны настроенные конфигурации сборки, между которыми можно будет переключаться в 1 клик.
Terminal
Сборка из терминала представляет собой повтор Build Steps из настроек QtCreator.