Примеры проектов на Qt
Пример использования 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
Осталось указать специфичные для наших конфигураций опции и файлы.
solution {
# Solution - is GUI.
CONFIG += qt
# Qt modules.
QT += widgets gui
# Solution specific headers/sources.
HEADERS +=
SOURCES += \
src/main.cpp
}
QtCreator
После описания файла проекта необходимо настроить конфигурации сборки.
Для этого после открытия проекта следует перейти в раздел 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.
Конфигурация solution
(основное решение).
qmake qt_project.pro CONFIG+=solution
Конфигурация tests
(тесты).
qmake qt_project.pro CONFIG+=tests GTEST_ROOT=<path/to/googletest>
Так как GoogleTest будет динамическим, то дополнительно перед запуском.
set PATH=<path/to/googletest>\bin;%PATH%
Сборка с использованием MSVC/cl.
nmake -f Makefile.Debug
REM Debug-сборка
nmake -f Makefile.Release
REM Release-сборка
Запуск.
.\debug\qt_project.exe
REM Debug
.\release\qt_project.exe
REM Release
Last updated