Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Как использовать Qt в C++ без QtCreator?

#cpp #qt


Как я могу использовать Qt без QtCreator?

Я только начал знакомиться с C++, поэтому мне не очевидно что я должен скачать и
подключить, что бы самостоятельно компилировать приложения с Qt. У меня есть windows
7, g++ и другие компоненты MinGW, cmake и мой текстовый редактор. Я не нашел гайдов
о том, где мне взять заголовочные и другие файлы Qt или хотя бы как это называется.

Везде описывается только разработка в QtCreator, который неплох, но мне совершенно
не нужен. Подскажите где взять SDK Qt и куда его ложить.

Сейчас при попытке сборки, cmake ругается так:


  Could not find a package configuration file provided by "Qt5Widgets"
  with   any of the following names:

Qt5WidgetsConfig.cmake
qt5widgets-config.cmake

  
  Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or
  set   "Qt5Widgets_DIR" to a directory containing one of the above
  files.  If   "Qt5Widgets" provides a separate development package or
  SDK, be sure it has   been installed.


Кстати, я правильно понимаю, что если мне понадобится глобальная видимость заголовочных
файлов (например для того, что бы использовать их в разных проектах без копирования),
я могу скопировать их куда-то в cmake? Или нужно в MinGW? На этот вопрос не обязательно
отвечать, он просто к месту.
    


Ответы

Ответ 1



Описать в деталях как пользоваться cmake'ом на win-платформе я не смогу, так что дам в общих чертах последовательность действий: Cоздаёшь CMakeLists.txt, за основу можно взять это: cmake_minimum_required(VERSION 3.1.0) project(testproject) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) find_package(Qt5Widgets CONFIG REQUIRED) set(helloworld_SRCS mainwindow.ui mainwindow.cpp main.cpp ) add_executable(helloworld ${helloworld_SRCS}) target_link_libraries(helloworld Qt5::Widgets) main.cpp и mainwindow.{cpp,h} пишешь в своём редакторе, по необходимости форму mainwindow.ui создаёшь в designer'е (идёт вместе с Qt) или, если страдаешь излишней суровостью, то вручную — это xml-файл. Создаёшь отдельный каталог сборки (назовём его build) и вызываешь в нём cmake путь/к/каталогу/исходников При этом надо сообщить cmake'у пути до тулчейна (gсс/g++/make/ld) и Qt (на сколько-то уровней вверх от каталога с файлами Qt*.cmake, аналогично этому описанию). Какой предпочтительный/удобный способ сделать и то и другое на win-платформе — я не скажу. Также возможно потребуется передать другие аргументы вроде -G "MinGW Makefiles". Смотришь чтобы cmake отработал без ошибок, после чего получишь дерево сборки с гоовыми Makefile'ами и собираешь их обычной командой: make Также в качестве альтернативы, можно пользоваться qmake'ом или возможно писать Makefile'ы самостоятельно.

Ответ 2



Для Microsoft Visual studio существует аддон в их маркете (https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools-19123) После установки аддона необходимо указать там используемые версии кьют и можно использовать прямо из студии. В самом проекте классы придется разделить на обычные и классы кьют, т.к. им требуется мета-компиляция. Также возможно редактирование файлов форм через QT Designer и все плюшки вроде qt translator и т.п.

Ответ 3



SDK берем тут только я не нашел там сборку под Mingw может лучше взять MSVC компилятор, чтобы не морочится со сборкой qt. Вам в любом случае понадобится QtDesigner, который входит в состав Creator'a, возможно есть отдельные сборки. Кроме того не уверен, что удастся обойтись без qmake так как он генерирует исходники форм. Посему я бы рекомендовал Использовать инструментарий Qt. Дабы сосредоточится на изучении Qt. Если Вам не нужен на данном этапе UI, то лучше ограничится средой CodeBloks или VSCode(Но ИМХО Creator или студия были бы лучше, они лучше поддерживают современные стандарты плюсов). PS Отделяете мух от котлет рекомендую изучать в следуюущем порядке С++ cmake UI(qt)

Ответ 4



Решение найдено Как я могу использовать Qt без QtCreator? Всё просто, нужно скомпилировать Qt из исходников. Большинство задач покрывается QtBase. Можно использовать официальный установщик, что бы поставить необходимые компоненты, но у меня возникли проблемы с этим вариантом. Онлайн инсталятор выдавал непонятную ошибку соединения на первом шаге установки, а оффлайн версия принудительно устанавливает QtCreator. Итак, сборка QtBase занимает примерно 3 часа на среднем ПК с Win7. Если это тебя не остановит или нужна не стандартная сборка (например статическая или с файлами для отладки), вот что нужно сделать. Скачать набор компиляторов MinGW. Например здесь или тут Скачать исходные коды Qt с этой страницы Распаковать папку qtbase и выполнить в ней configure.bat и mingw32-make для сборки После этого Qt будет установлена в директорию по умолчанию. Советую после установки Qt так же собрать и установить QtDesigner, для удобного и быстрого конструирования стандартных окон. Он находится в директории qttools, для конфигурирования нужен qmake, который находится в поддиректории bin, установленной Qt. Важно упомянуть, что для корректной сборки на windows, при конфигурировании необходимо использовать параметр -opengl desktop, в противном случае, обязательно должен быть установлен ANGLE, иначе компиляция будет прервана сообщением об ошибке. Так же, если нужно изменить директорию установки Qt, можно использовать параметр --prefix В общем случае, для конфигурации Makefile достаточно выполнить следующую команду configure.bat --prefix=C:\Qt\MyBuild -opensource -confirm-license -opengl desktop

Комментариев нет:

Отправить комментарий