Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Структура проекта. Основные типы
12.1 Файлы проекта
Теперь давайте рассмотрим из чего состоит проект Qt. В общем, проект Qt имеет такую структуру:
- файл проекта — описывает файлы, которые входят в проект и содержит необходимые настройки;
- файлы, входящие в проект (или другие подпроекты, если проект разбит на несколько частей).
Ключевую роль имеет файл проекта с расширением .pro. Он содержит списки файлов: исходных кодов, файлов ресурсов, файлов локализации, форм, других файлов, которые входят в проект, а также файлов подпроектов, если проект состоит из нескольких частей. Этот файл также содержит некоторые настройки программы.
Теперь рассмотрим создание своего проектного файла. Создадим новую папку, где будет размещаться проект (например: custom_project). Создайте файл (это будет файл проекта) введите его имя с расширением .pro (например: custom_project.pro). Наш файл пока что пустой, но его уже можно открыть в Qt Creator (воспользуйтесь главным меню: File->Open File or Project...).
Создать пустой проект можно с помощью мастера построения проектов. Для этого надо воспользоваться главным меню File->New File or Project... либо комбинацией клавиш Ctrl+Shift+N. В окне мастера нужно выбрать раздел Other Project (Другой проект) и тип проекта — Empty Qt Project.
После того, как мы открыли проект, Qt Creator предлагает выбрать комплект для его компиляции. В разделе Projects (Проекты) выберем комплект по умолчанию и нажмём Configure Project. В дереве проекта выберем и откроем файл проекта. Теперь настало время исследовать синтаксис проектных файлов Qt.
Проектный файл обычно содержит несколько настроек в виде специальных переменных, каждая из которых играет свою особую роль. Среди большого количества настроек, которые задают в .pro-файле:
- тип проекта (приложение, динамическая или статическая библиотека, проект, который состоит из подпроектов);
- общие настройки проекта;
- настройки компиляции;
- путь, где будет размещён исполняемый файл, библиотека или бинарный файл во время процесса компиляции;
- пути к файлам, библиотекам и другим частям проекта необходимым для компиляции;
- файлы, входящие в проект;
- дополнительные действия, которые будут выполняться в процессе компиляции проекта.
Откройте проектный файл и добавьте к нему содержимое. Обратите внимание: символ # можно использовать для обозначения комментариев.
# Указываем тип проекта TEMPLATE = app # app - Application, прикладная программа # Используемые модули Qt QT -= gui # Удаляем из списка модуль gui # это означает отказ от использования графического интрефейса, # то есть - консольную программу CONFIG += console # Конфигурируем создание консольного проекта # (нужно только для консольных проектов в Windows, в Linux и Mac OS X не выполняет никаких действий) CONFIG -= app_bundle # Предотвращает создание Application bundle в Mac OS X # (нужно только для консольных проектов в Mac OS X) TARGET = custom_project # Название исполняемого файла
Теперь нам осталось добавить в проект файл с текстом программы. Для этого мы снова можем воспользоваться мастером. В категории Files and Classes (Файлы и классы) выберем раздел C++ и выберем тип файла "C++ Source File" (Файл исходных текстов C++). Поскольку это будет главный файл программы, то дадим ему привычное для этого случая название: main.cpp. Текст программы является обычным:
int main ( int lArg c, char * lArgv [ ] ) { return 0; }
После создания main.cpp, вновь откроем файл проекта и обратим внимание на несколько дополнительных строк:
SOURCES += \ main.cpp
Переменная SOURCES хранит список .cpp файлов. В табл. 12.1 мы предоставляем список переменных, которые часто участвуют в описании проекта:
Переменная | Описание | Пример |
---|---|---|
CONFIG | Разнообразные настройки конфигурации проекта (например: режим отладки, вывод предупреждений, компиляция динамической библиотеки и т.п.). |
CONFIG += dll plugin \ warn_on release |
DEFINES | Макроопределения в проекте. Работает так же, как директива препроцессора #define. |
DEFINES += DEBUG_OUTPUT \ CUSTOM_DEFINE |
DESTDIR | Путь к папке, где будет создан исполняемый файл. |
DESTDIR = ./bin |
INCLUDEPATH | Путь к папкам с заголовочными файлами |
INCLUDEPATH += ./includes \ ./my_header_files |
FORMS | Файлы форм Qt Designer. |
FORMS += mainwindow.ui |
HEADERS | Заголовочные файлы программы *.h. |
HEADERS += mainwindow.h |
LIBS | Пути к динамическим библиотекам и статическим библиотекам, которые используются в программе. |
LIBS += -L./libs \ -L./my_libs \ -lmycustomlib |
QT | Модули Qt, которые используются в программе. |
QT += core gui widgets \ network sql xml |
RESOURCES | Файл ресурсов. |
RESOURCES = resources.qrc |
SOURCES | Исходные тексты программы *.cpp. |
SOURCES += main.cpp \ mainwindow.cpp |
TARGET | Название исполняемого файла или динамической библиотеки. |
TARGET = MyFirstProject |
TEMPLATE | Тип проекта (приложение, библиотека, составленный из подпроектов ...) |
TEMPLATE = lib |