В qt добавить файл в проект
Я хотел бы разделить свой проект Qt на несколько каталогов, потому что он становится довольно большим. Однако, когда я нажимаю «Обзор» в QtCreator, нет «Добавить каталог» и ничего подобного в «Добавить новый». Можно как-то это сделать?
@Ariya Вы должны хотя бы проголосовать за это, поскольку это функция доступна в большинстве IDE, и люди будут спрашивать об этом.
При всем уважении, но Qt-Creator отстой в удобстве использования (в отношении пользовательского интерфейса). Как разработчик, если вы видите, что кто-то должен спросить, как добавить подкаталог в проект на общедоступном форуме, то вы знаете, что с этим есть серьезная проблема. IDE.
@GabrielF довольно легко . это фиксированная. Почему мы не можем просто выбрать «создать каталог» (или «добавить каталог» в духе Creator), как в большинстве IDE. Это базовая функциональность, которая есть даже у большинства дрянных редакторов - вы можете создать каталог в блокноте! Не должно быть «метода» для выполнения такой простой, базовой задачи - он должен быть очевиден.
Один из способов, который вы можете использовать, - это добавить файл включения проекта для каждого подкаталога.
Qt Creator отображает их в графическом интерфейсе во вложенном виде и позволяет вам добавлять к ним файлы.
в папке1 / include.pri
Могу ли я сделать это вложение из среды IDE или мне придется вручную устанавливать эти файлы и каталоги?
Я быстро просмотрел и думаю, что вам нужно добавить включаемые файлы вручную, но при добавлении новых файлов в проект Qt Creator позволит вам добавить их во включаемый файл, а не в основной файл проекта.
До QT Creator 3.1.x вы можете щелкнуть правой кнопкой мыши свой проект -> « добавить новый . » и изменить путь к нужной папке.
Папка должна существовать , Qt не создаст ее за вас.
Qt позаботится о пути в вашем файле .pro.
У меня была такая же проблема, и я нашел относительно простой ответ.
Все , что вам нужно сделать , чтобы перейти file.cpp на newFolder это переименовать файл (правой кнопкой -> Переименовать) в newFolder\file.cpp .
Qt Creator переместит его в новую папку и автоматически обновит .pro файл.
Если перемещенный файл находится под контролем GIT, позаботится ли создатель Qt о необходимых изменениях в GIT?
@Silicomancer Git обрабатывает перемещенные файлы за вас, а не Qt Creator. Вам ничего не нужно делать, кроме как переместить файл с помощью описанного обходного пути (с использованием «переименования») в Qt Creator. Если бы вы перемещали файл только в файловой системе, Git распознал бы это, но путь к файлу не был бы скорректирован в .PRO файле Qt Creator .
@Silicomancer Да. Если qtreacor распознает, что проект версируется с помощью git, он дублирует все действия. Это включает как минимум создание, удаление, переименование и перемещение файлов.
Начиная с версии 1.2.90 Qt Creator показывает вложенные папки, которые существуют в папке проекта, как ветви в дереве проекта, если только для параметра Дерево фильтра не установлено значение Упростить дерево .
Только кажется невозможным создать подкаталоги в QT-CREATOR.
- Создайте несколько подкаталогов с помощью файлового проводника или командной строки в папке проекта (например, net / , gui / , test / , data / . )!
- Переместите существующие файлы в эти новые папки. И измените их пути в файле * .proj !
- Создавайте новые файлы также с самого начала в новых папках (By AddNew . )!
. QT-CREATOR отображает только такие папки, которые содержат файлы, записанные со своими именами в файл * .pro или * .pri. На корневом уровне QT-CREATOR различает ЗАГОЛОВКИ, ИСТОЧНИКИ, ФОРМЫ и ДРУГИЕ ФАЙЛЫ. Внутри этих корневых папок вы можете неоднократно находить собственные подпапки проекта. (В этом тексте не рассматривается разделение на подпроекты.)
Правда. Если проект Qt просматривается внутри Qt Creator и pri проекты используются должным образом, среда IDE отображает вещи в красивой вложенной форме. Однако на уровне файловой системы все файлы (кроме случаев использования subdir и создания подпроектов) находятся на одном уровне иерархии каталогов. Это делает вещи довольно громоздкими, когда кто-то просматривает проект в проводнике файлов (Windows Explorer, Thunar, Nautilus и т. Д.). Если требуется правильная файловая структура, то выполнение действий вручную (как предлагает здесь @CWIMMER) - единственный способ.
Вы можете создать подкаталог, если у вас есть файл, который вы хотите создать в нем. Перейдите в родительский каталог и «Добавить» в него файл. «Найдите» нужное место и создайте новую папку в окне просмотра. Согласитесь, это не совсем интуитивно понятно.
Вопрос дурацкий и простой до безобразия: как добавить дополнительных файлов в qt-проект? В качестве ide использую qtcreator. Мне нужен механизм по которому возможно выполнить следующий объём требований:
- Возможность добавить в проект несколько файлов неопределённого содержания, структурно организованных в дерево (обычные каталоги, короче).
- Возможность сослаться в коде на каталог с этими файлами. Либо отдельной функцией (QString getDirWithMyFiles()), либо макросом (MY_PROJECT_FILES) — не суть важно, как именно. Причём это должен быть путь в файловой системе.
- Автоматическая установка этих файлов вместе со всем остальным проектом при «make install».
- Возможность дебажиться без предварительной установки.
- Желательна заявляемая qt'шниками кроссплатфомернность.
Требования 1 и 2 накладываются тем, что некоторые из этих файлов надо подсовывать библитеке сторонней. Это, кстати, перечёркивает использование qt resources с их странным путями типа ":/mydir/myfile.jpg".
Требования 3 и 4 из соображений удобства разработки. Требование 5 нужно для того, чтобы соблазн подставлять костыли был минимальным. Чтобы не городить кучу scopes типа win32 < . >, linux < . >и прочее.
Почитал кучу хрени про qmake, ничего путного не нашёл, поэтому пришёл сюда за советом. Совсем нет желания фигачить QMAKE_POST_LINK и руками делать закат солнца вручную. INSTALLS — тоже закат солнца вручную, но причём ещё дополнительная куча гемора с требованием 4. DISTFILES — только Unix, ахринеть, блин. Как так жить-то? Заранее спасибо.
P.S. Проблема-то простая. Она же возникает, например, при включении сопроводительной документации в проект. Либо при использовании библиотек, которым нужно подсунуть определённым образом организованный каталог с данными для работы.
Требования 1 и 2 накладываются тем, что некоторые из этих файлов надо подсовывать библитеке сторонней. Это, кстати, перечёркивает использование qt resources с их странным путями типа ":/mydir/myfile.jpg".
Скармливай библиотеке буффер с файлом. Почитай доки про кутишные ресурсы, там все написано.
Библиотека не файл жрёт, библиотеке каталог нужен. Если бы ей файлы по одиночке нужны были, я бы конечно qt resources использовал.
Тогда перед тем как такое делать, создай требуемое во временном каталоге. :)
Костыль адовый, но интересный. Спасибо, запишу в качестве запасного варианта.
Теперь добавим файл для ввода текста программы. Для этого в окне Проекты щелкаем правой кнопкой мыши на названии проекта и из контекстного меню выбираем пункт Добавить новый. В открывшемся окне (рис. 2.4) из списка слева выбираем пункт C/C++, а из списка справа — пункт Файл исходных текстов C/C++. Нажимаем кнопку Выбрать. На следующем шаге (рис. 2.5) вводим название HelloWorld.cpp (обратите внимание: файлы с исходным кодом на языке C++ имеют расширение cpp ) в поле Имя файла. В поле Путь указываем значение C:\cpp\projectsQt\HelloWorld . Нажимаем кнопку Далее. На следующем шаге (рис. 2.6) нажимаем кнопку Завершить. Созданный файл отобразится на вкладке Проекты и будет открыт на отдельной вкладке для редактирования. В файл HelloWorld.pro будут добавлены следующие строки:
Теперь проверим кодировку файла. Увидеть кодировку файла можно выбрав в меню Правка пункт Выбрать кодировку. Кодировка должна быть указана windows-1251 / CP1251.
Рис. 2.4. Добавление файла с программой. Шаг 1
Рис. 2.5. Добавление файла с программой. Шаг 2
Рис. 2.6. Добавление файла с программой. Шаг 3
Учебник C++ (Qt Creator и MinGW) в формате PDF
Помощь сайту
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
Помимо файлов с исходным кодом (в языке C++ они имеют расширение cpp , а в языке C — расширение c ) в проекте могут быть заголовочные файлы (в языке C++ они имеют расширение hpp или h ). В заголовочных файлах указываются прототипы функций и различные объявления.
Для создания заголовочного файла в окне Проекты щелкаем правой кнопкой мыши на названии проекта и из контекстного меню выбираем пункт Добавить новый. В открывшемся окне (рис. 2.7) из списка слева выбираем пункт C/C++, а из списка справа — пункт Заголовочный файл C/C++. Нажимаем кнопку Выбрать. На следующем шаге (рис. 2.8) вводим название HelloWorld.hpp в поле Имя файла. В поле Путь указываем значение C:\cpp\projectsQt\HelloWorld . Нажимаем кнопку Далее. На следующем шаге (рис. 2.9) нажимаем кнопку Завершить.
Рис. 2.7. Создание заголовочного файла. Шаг 1
Рис. 2.8. Создание заголовочного файла. Шаг 2
Рис. 2.9. Создание заголовочного файла. Шаг 3
Созданный файл отобразится на вкладке Проекты и будет открыт на отдельной вкладке для редактирования. Причем внутри файла будет вставлен код, приведенный в листинге 2.2. В файл HelloWorld.pro будут добавлены следующие строки:
Листинг 2.2. Содержимое файла HelloWorld.hpp
или внутри кавычек:
В первом случае заголовочный файл ищется в путях поиска заголовочных файлов. При этом текущий рабочий каталог не просматривается. Добавить каталог в пути поиска заголовочных файлов позволяет флаг -I в команде компиляции. Обычно с помощью угловых скобок включаются заголовочные файлы стандартной библиотеки или библиотеки стороннего разработчика.
Во втором случае мы имеем дело с заголовочным файлом, который вначале ищется в текущем рабочем каталоге (или относительно него), а затем в путях поиска заголовочных файлов, как будто название указано внутри угловых скобок. Таким способом обычно включаются заголовочные файлы проекта.
Внимательный читатель наверняка обратил внимание на то, что файл iostream не содержит расширение. Наличие расширения файла принято в стандартной библиотеке языка C. В стандартной библиотеке языка C++ расширение файла принято не указывать. Так как язык C++ наследует все библиотеки языка C, то файлы можно подключать как в стиле языка C, так и в стиле языка C++. Например, файл string.h из стандартной библиотеки языка C доступен в языке C++ под названием cstring , а файл math.h под названием cmath . Отличие между этими способами подключения заключается в импорте идентификаторов. В языке C при подключении файла (например, math.h ) все идентификаторы импортируются в глобальное пространство имен, а в языке C++ при подключении файла (например, cmath ) идентификаторы добавляются в пространство имен под названием std . Поэтому перед идентификатором необходимо указать название пространства имен (например, std::cout ). Использование пространств имен позволяет избежать конфликта имен в программе.
Можно указать просто название заголовочного файла:
абсолютный путь к нему:
или относительный путь к нему:
Если указано только название заголовочного файла и этот файл не входит с состав проекта (или название указано внутри угловых скобок), то нужно дополнительно указать место поиска заголовочных файлов. Путь к заголовочным файлам в командной строке добавляется с помощью флага -I :
В нашем случае путь содержит пробел, поэтому весь путь указывается внутри кавычек. Если пробелов нет, то кавычки можно не указывать.
Учебник C++ (Qt Creator и MinGW) в формате PDF
Помощь сайту
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
Давайте в редакторе QtCreator создадим два проекта. Первый проект (с названием Test64 ) мы будем использовать для создания 64-битных консольных программ, а второй проект (с названием TestGUI ) — для создания 64-битных оконных программ.
Создание консольного приложения
Для создания проекта консольного приложения в меню Файл выбираем пункт Создать файл или проект. В открывшемся окне (рис. 1.21) в списке выбираем пункт Проект без Qt, а затем пункт Приложение на языке C++. Нажимаем кнопку Выбрать. На следующем шаге (рис. 1.22) в поле Название вводим Test64 , в поле Создать в добавляем путь C:\cpp\projectsQt . Нажимаем кнопку Далее. На следующем шаге (рис. 1.23) из списка Система сборки выбираем пункт qmake и нажимаем кнопку Далее. На следующем шаге (рис. 1.24) устанавливаем флажок Desktop Qt 6.1.0 MinGW 64-bit. Нажимаем кнопку Подробнее и изменяем пути по умолчанию. В поле Отладка вводим значение C:\cpp\projectsQt\Test64-Debug , а в поле Выпуск — значение C:\cpp\projectsQt\Test64-Release . Нажимаем кнопку Далее. На следующем шаге (рис. 1.25) нажимаем кнопку Завершить.
Рис. 1.21. Создание консольного приложения. Шаг 1
Рис. 1.22. Создание консольного приложения. Шаг 2
Рис. 1.23. Создание консольного приложения. Шаг 3
Рис. 1.24. Создание консольного приложения. Шаг 4
Рис. 1.25. Создание консольного приложения. Шаг 5
По умолчанию для кодирования символов в L-строках MinGW использует кодировку UTF-8, а файлы нашего проекта сохраняются в кодировке windows-1251. Если мы попробуем указать русские буквы при инициализации L-строки ( L"Строка" ), то получим ошибку. Чтобы избежать ошибок нужно с помощью флага -finput-charset указать компилятору кодировку исходного файла, а с помощью флага -fexec-charset — кодировку C-строк. Для этого в файл Test64.pro добавляем следующие инструкции:
Содержимое файла Test64.pro должно выглядеть так:
Содержимое файла main.cpp :
Чтобы преобразовать текстовый файл main.cpp с программой в исполняемый EXE-файл делаем текущей вкладку с содержимым файла main.cpp и слева сначала выбираем пункт Отладка, а затем нажимаем кнопку Запустить (содержит значок в виде зеленого треугольника) или нажимаем комбинацию клавиш +. Можно также в меню Сборка выбрать пункт Запустить.
Если флаги -Wconversion , -finput-charset или -fexec-charset отсутствуют в команде компиляции, то вы не добавили эти инструкции в файл Test64.pro .
Команда Запустить не только выполняет сборку проекта, но и запускает его на исполнение. Результат выполнения программы доступен на вкладке Вывод приложения (рис. 1.26):
Текст Hello World! и есть результат выполнения программы.
Рис. 1.26 Редактор QtCreator с результатом выполнения программы
В результате компиляции в каталоге C:\cpp\projectsQt был создан каталог Test64-Debug . Внутри вложенного каталога debug находится файл Test64.exe, который можно запустить на выполнение с помощью двойного щелчка мыши на значке файла. Если попробовать сделать это сейчас, то окно откроется, а затем сразу закроется. Как сделать, чтобы окно сразу не закрывалось мы рассмотрим немного позже. Сейчас же запустим приложение из командной строки:
Как видите, компиляция и запуск выполняются в редакторе выбором пункта в меню или нажатием кнопки. Чтобы выполнить сборку и сразу запустить приложение нажимаем кнопку с изображением зеленого треугольника. Если нужно выполнить только сборку, то нажимаем кнопку с изображением молотка (см. рис. .1.26). Согласитесь, очень просто и удобно.
Учебник C++ (Qt Creator и MinGW) в формате PDF
Помощь сайту
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов
Читайте также: