Установка Qt под Visual Studio, MinGW и для разработки под Android

Featured image

Инструкция по установке Qt с компилятором Visual Studio, MinGW и возможностью программировать под Android на примере Windows 10.

📖 Содержание ⬇️

Содержание

Если вы хотите установить Qt просто, чтобы программировать на C++ под Windows с стандартным компилятором, то вам подойдет упрощенная установка, описанная тут: Установка Qt | ↗️.

Если вы хотите установить Qt под Windows XP, то данная статья вам не подойдет, так что вам сюда: Установка Qt 4.8.4 на Windows XP | ↗️.

Подготовка для работы с компилятором Visual Studio

Если вы хотите использовать компилятор под Visual Studio, то вам нужно установить Visual Studio. В статье Установка Visual Studio 2019 Community | ↗️ рассказывается, как это сделать.

Решите до установки Qt, какой язык интерфейса будет у Visual Studio. От этого зависит язык сообщений об ошибках, которые будут приходит при компилировании проектов в Qt.

В установщике Visual Studio Installer можно удалить русский пакет и установить английский, чтобы русский язык вообще нигде не вылазил:

Изменение пакетов Visual Studio

Рисунок 1 — Изменение пакетов Visual Studio

Удаление русского языка и установка английского языка в Visual Studio

Рисунок 2 — Удаление русского языка и установка английского языка в Visual Studio

UWP приложения в Qt больше не поддерживаются: «Additionally, it will no longer be possible to create UWP applications on Windows 10».

Подготовка для программирования под Android

Если вы хотите писать приложения под Android, то вам нужно установить JDK. Об этом можно узнать из статьи Установка Open JDK в Windows | ↗️. Обратите внимание, что на август 2021 рекомендую устанавливать Java 8, хотя уже вышла Java 16, так как Qt с ними еще не умеет нормально работать: «Note: JDK 11 or earlier must be used when using Qt for Android». Да, тут написано про 11 версию, а я советую 8. Почему? А у меня с JDK 11 Qt отказался работать в 2021-08.

Также вам будет нужен Android SDK и Android NDK. Статья об установке: Установка Android Studio в Windows | ↗️. Особое внимание уделите на установку пакетов SDK из статьи.

На этой же странице можете посмотреть на версии SDK и NDK, которые требуются для Qt.

Устанавливает SDK и NDK через Android Studio. На скриншоте ниже у меня установлена SDK 31 и 22 версии:

Переход в SDK Manager

Рисунок 3 — Переход в SDK Manager

Установленные версии SDK

Рисунок 4 — Установленные версии SDK

А NDK должен быть на август 2021 года версии 20 или 21. Берем 20 во избежания проблем:

Нужные версии NDK

Рисунок 5 — Нужные версии NDK

Поэтому в SDK Manager в Android Studio во складке SDK Tools щелкаем по Show Package Details и выбираем версию NDK нужной нам версии:

Установка NDK

Рисунок 6 — Установка NDK

Разумеется, что, когда вы читаете эту инструкцию, версия NDK будет скорее всего другой.

Только после установки необходимых вам программ можно приступать к установке Qt.

Скачивание Qt

Практика нескольких лет наблюдений показывает, что Qt регулярно меняет алгоритм нахождения open source версии установщика, так что учтите это.

Перейдите на страницу: https://www.qt.io/download.

Там вам нужно спуститься почти в самый низ:

Страница скачивания Qt

Рисунок 7 — Страница скачивания Qt

И там находите Go open source:

Страница скачивания Qt

Рисунок 8 — Страница скачивания Qt

Нам рекомендуют скачать online установщик. Раньше я ставил через offline установщик, но для установки версий MinGW, Visual Studio, Android приходилось устанавливать через несколько инсталляторов, и обновляются такие сборки реже. Так что скачиваем online установщик через кнопку Download, ссылка на который находится в самом низу страницы (на 2021-08-09):

Скачивание online установщика

Рисунок 9 — Скачивание online установщика

Скачивание online установщика (второе окно)

Рисунок 10 — Скачивание online установщика (второе окно)

Если же вам нужен всё-таки offline установщик, то спуститесь в самый низ и увидите ссылку на них:

Скачивание offline установщика

Рисунок 11 — Скачивание offline установщика

Установка

Запускаем скаченный файл. К сожалению, вам нужно иметь учетную запись Qt. Если её нет, то щелкаете на Sign up:

Начальное окно установки

Рисунок 12 — Начальное окно установки

Вводите данные новой учетки, если перешли по Sign up:

Создание учетки

Рисунок 13 — Создание учетки

После этого вы должны будете подтвердить учетку через письмо, которое придет на электронную почту, о чем говорит выделенная фраза:

Ввод информации о пользователе

Рисунок 14 — Ввод информации о пользователе

Там, перейдя по ссылке, вам попросят ввести информацию о вас. Если вы используете Qt в личных целях, то укажите это, что позволит пользоваться Qt бесплатно:

Процесс сбора информации о сборках

Рисунок 15 — Процесс сбора информации о сборках

После этого вы сможете в установщике пройти дальше, где еще раз укажите, что пользуетесь лично Qt, а не в компании:

Соглашение с лицензиями

Рисунок 16 — Соглашение с лицензиями

Приветственное окно

Рисунок 17 — Приветственное окно

Согласие с отправкой статистики в Qt

Рисунок 18 — Согласие с отправкой статистики в Qt

Выбираем Custom installation для выбора устанавливаемых компонентов:

Выбор «Custom installation»

Рисунок 19 — Выбор «Custom installation»

В последней (не preview) версии Qt выбираем пакеты с нужными компиляторами.

  • MSVC — это компилятор под Visual Studio. Например, MSVC 2019 64 bit означает версию компилятора по Visual Studio 2019 в виде 64-битной версии. Выбирайте пакеты согласно вашей версии Visual Studio и битности операционной системы.
  • MinGW — компилятор MinGW для написания десктопных приложений. Для работы с ним не нужно ничего дополнительного устанавливать, как с другими пакетами.
  • Android — позволят компилировать приложения под Android на разных семействах процессоров.
  • Sources — если вам нужны исходники классов Qt библиотек, то выбирайте этот пункт.

Лично мне у меня 64-битная Windows 10 с Visual Studio 2019 Community, и мне нужно проверять программы как на компиляторе Visual Studio, так и на MinGW. А также нужно программировать под Android. Рекомендую установить все дополнительные библиотеки (Qt Charts и другие), чтобы они были у вас под рукой:

Выбор компонентов для установки

Рисунок 20 — Выбор компонентов для установки

Если вам интересен Qt Installer Framework, то можно его отметить. Если будете работать с сетью, то выберите OpenSSL:

Выбор компонентов для установки

Рисунок 21 — Выбор компонентов для установки

Соглашаемся с условиями:

Соглашение с условиями

Рисунок 22 — Соглашение с условиями

Выбор названия в меню Пуск

Рисунок 23 — Выбор названия в меню Пуск

Вы можете увидеть требуемое место для установки программы:

Окно перед установкой

Рисунок 24 — Окно перед установкой

Процесс установки

Рисунок 25 — Процесс установки

Завершение установки

Рисунок 26 — Завершение установки

Настройка

Если Qt Creator запустился с русским интерфейсом, то настоятельно рекомендую поменять его на английский:

Выбор пункта меню Параметры

Рисунок 27 — Выбор пункта меню Параметры

Выбор английского языка для интерфейса

Рисунок 28 — Выбор английского языка для интерфейса

Потом перезапустите Qt Creator:

Интерфейс теперь на английском

Рисунок 29 — Интерфейс теперь на английском

Если вы создадите какой-нибудь проект в Qt и скомпилируете его под разными режимами (Release, Debug), то у вас в папке, где находится папка с проектом появятся еще папки с скомпилированным проектом:

Папки с скомпилированными проектами

Рисунок 30 — Папки с скомпилированными проектами

На мой взгляд это крайне неудобно и засоряет папку, где у вас могут находится другие проекты. Лучше было бы, чтобы эти скомпилированные файлы располагались в специальной папке в папке проекта. Поэтому я меняю в настройках путь. Вы можете не менять — это не принципиально.

Первоначальное значение параметра Default build directory:

../%{JS: Util.asciify("build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}")}

Изменение пути для компиляции проектов

Рисунок 31 — Изменение пути для компиляции проектов

Новое значение параметра Default build directory:

_build/%{JS: Util.asciify("build-%{Project:Name}-%{Kit:FileSystemName}-%{BuildConfig:Name}")}

Измененный путь для компиляции проектов

Рисунок 32 — Измененный путь для компиляции проектов

И да. Для тех, кто использует Git. В файле .gitignore я добавляю следующую строчку:

*_build*

Поменяйте путь к директории со своими проектами:

Изменение директории проектов

Рисунок 33 — Изменение директории проектов

У меня это папка C:\Users\sergi\OneDrive\Projects\Qt.

Настройка для работы с компилятором Visual Studio

Если у вас Visual Studio с русским интерфейсом, то в сообщениях об ошибках при компилировании в Qt вы будете видеть крякозябры. В статье Крякозябры в Qt под Visual Studio | ↗️ рассказывается как от них избавиться.

Можно поменять язык интерфейса Visual Studio на английский, но лучше это сделать до установки Qt, как говорилось выше. Но если вы все-таки это сделали после установки Qt, и новые проекты хорошо компилируются под компилятором Visual Studio, то со старыми проектами могут возникнуть проблемы:

Project ERROR: msvc-version.conf loaded but QMAKE_MSC_VER isn't set
:-1: error: msvc-version.conf loaded but QMAKE_MSC_VER isn't set

Сообщение об ошибке

Рисунок 34 — Сообщение об ошибке

Сообщение об ошибке

Рисунок 35 — Сообщение об ошибке

Эти ошибки можно исправить либо удалив полностью build папку с собранным проектом, либо удалив оттуда файл с расширением .qmake.stash. Про предварительное удаление файла *.pro.user тоже не забывайте.

Настройка для программирования под Android

Перейдем в настройки Qt:

Настройки Qt

Рисунок 36 — Настройки Qt

Находим вкладку Devices, а там вкладку Android. В разделе JDK Location месторасположение JDK должно определиться автоматически. Если не так, то найдите этот путь и укажите тут в настройках:

Параметр Android SDK Location

Рисунок 37 — Параметр Android SDK Location

Также может возникнуть проблема, если в системе установлено несколько версий JDK на компьютере. Например, у меня стоит JDK 16, OpenJDK 8, JDK 11 от Android Studio. И Qt нашел JDK 16, как на скриншоте выше, тогда как нужна версия 8. Так что мне пришлось путь поменять на C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot.

В разделе Android SDK Location выбираем папку, где установлено SDK библиотеки, если она не определилась автоматически (должна на самом деле сама определиться). У меня это папка C:\Users\sergi\AppData\Local\Android\Sdk:

Параметр Android SDK Location

Рисунок 38 — Параметр Android SDK Location

В разделе Android NDK Location выбираем папку, где установлено NDK библиотеки, если не определилась автоматически:

Параметр Android NDK Location

Рисунок 39 — Параметр Android NDK Location

У меня это папка C:\Users\sergi\AppData\Local\Android\Sdk\ndk\20.1.5948944.

Как видно на скриншоте выше почти все параметры Qt пометила зелеными галочками, но пункт All essential packages installed for all installed Qt versions. горит красным. То есть что-то не установлено. Нажмите на кнопку OK и войдите повторно в эти же настройки. И Qt должен предложить доустановить пакеты:

Предложение об установке пакетов

Рисунок 40 — Предложение об установке пакетов

Соглашение с установкой пакетов

Рисунок 41 — Соглашение с установкой пакетов

Предупреждение об необходимости согласия с лицензиями

Рисунок 42 — Предупреждение об необходимости согласия с лицензиями

Соглашение с лицензиями

Рисунок 43 — Соглашение с лицензиями

Установка пакетов

Рисунок 44 — Установка пакетов

Окончание установки пакетов

Рисунок 45 — Окончание установки пакетов

Теперь почти всё установлено. Остался только пакет с OpenSSL, который лучше установить, если вы планируете работать, например, с сетью:

Загрузка OpenSSL

Рисунок 46 — Загрузка OpenSSL

Вот теперь все настройки под Android сделаны:

Отсутствие красных предупреждений

Рисунок 47 — Отсутствие красных предупреждений

Если у вас проблемы с эмулятором, то помните, что в конце статьи Установка Android Studio в Windows | ↗️ есть описание того, как создать виртуальные устройства в стандартном эмуляторе, а также рассмотрены несколько других сторонних эмуляторов.

Пример программы

В статье Базовое приложение в Qt Widgets | ↗️ рассказано как создать стандартное Windows приложение со стандартными контролами. Теперь же попробуем создать шаблонное приложение на основе Qt Quick, где логика пишется на C++, а интерфейс на QML:

Создание нового проекта

Рисунок 48 — Создание нового проекта

Выбираем вариант Qt Quick Application — Swipe:

Выбор шаблона проекта

Рисунок 49 — Выбор шаблона проекта

Выбор названия проекта и его расположения

Рисунок 50 — Выбор названия проекта и его расположения

Выбор системы сборки проекта

Рисунок 51 — Выбор системы сборки проекта

Выбор версии QML

Рисунок 52 — Выбор версии QML

Настройки перевода приложения

Рисунок 53 — Настройки перевода приложения

Выберем для теста все возможные компиляторы для сборки проекта:

Выбор компиляторов

Рисунок 54 — Выбор компиляторов

Окончание создания проекта

Рисунок 55 — Окончание создания проекта

Вначале скомпилируем проект под стандартный MinGW, который мы никак выше не настраивали (это и не нужно):

Выбор компилятора MinGW

Рисунок 56 — Выбор компилятора MinGW

Запуск проекта

Рисунок 57 — Запуск проекта

Запущенное приложение

Рисунок 58 — Запущенное приложение

Теперь попробуем скомпилировать через компилятор Visual Studio:

Выбор компилятора Visual Studio

Рисунок 59 — Выбор компилятора Visual Studio

Может возникнуть такая ошибка:

Ошибка при компиляции проекта

Рисунок 60 — Ошибка при компиляции проекта

Если у вас возникнет такая ошибка, то закройте Qt Creator, удалите папку со сборкой проекта (у меня это папка _build), а в папке с проектом удалите файл *.pro.user. Потом откройте заново Qt Creator, откройте в нем проект и заново скомпилируйте проект и запустите его:

Запущенное приложение

Рисунок 61 — Запущенное приложение

Теперь попробуем запустить под Android на эмуляторе:

Выбор компилятора под Android

Рисунок 62 — Выбор компилятора под Android

Выбор эмулятора

Рисунок 63 — Выбор эмулятора

Запущенное приложение

Рисунок 64 — Запущенное приложение

Дополнительные настройки

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

Вертикальная линия для ограничения длины строк

Рекомендую поставить вертикальную линию в редакторе кода, чтобы следить за длиной строчек кода в параметре Display right margin at column. Я использую значение равное 120:

Изменение параметра «Display right margin at column»

Рисунок 65 — Изменение параметра «Display right margin at column»

Два пробела для отступов вместо четырех

Мне не нравится использовать 4 пробела в отступах: 2 пробела достаточно:

Создание нового стиля кода для Qt Quick

Рисунок 66 — Создание нового стиля кода для Qt Quick

Ввод названия нового стиля кода

Рисунок 67 — Ввод названия нового стиля кода

Изменение количество пробелов для отступа

Рисунок 68 — Изменение количество пробелов для отступа

Создание нового стиля кода для C++

Рисунок 69 — Создание нового стиля кода для C++

Ввод названия нового стиля кода

Рисунок 70 — Ввод названия нового стиля кода

Изменение количество пробелов для отступа

Рисунок 71 — Изменение количество пробелов для отступа

Дублирование строки

Во многих редакторах команда Ctrl + D дублирует строчку, тогда как в Qt Creator данная команда выполняется через Ctrl + Alt + Down. Неудобно, поэтому поменяем. В настройках горячих клавишах находим команду CopyLineDown:

Команда CopyLineDown

Рисунок 72 — Команда CopyLineDown

Меняем сочетание клавиш на Ctrl + D. Но мы увидим конфликт, так как на эту комбинацию клавиш назначена другая команда:

Конфликт в горячих клавишах

Рисунок 73 — Конфликт в горячих клавишах

Найдем эту команду DeleteSelectedElements и удаляем сочетание горячих клавиш или меняем на другое:

Удаление комбинации клавиш у команды DeleteSelectedElements

Рисунок 74 — Удаление комбинации клавиш у команды DeleteSelectedElements

Теперь конфликта нет, и комбинация Ctrl + D будет дублировать строку:

Отсутствие конфликта в горячих клавишах

Рисунок 75 — Отсутствие конфликта в горячих клавишах

Шрифты

Мне нравится шрифт JetBrains Mono.

Скачать можно его можно тут: https://www.jetbrains.com/ru-ru/lp/mono/.

После установки шрифтов в настройках Qt можно поменять шрифт:

Изменение шрифта

Рисунок 76 — Изменение шрифта

Было:

Стандартный шрифт

Рисунок 77 — Стандартный шрифт

Стало:

Шрифт Roboto Mono

Рисунок 78 — Шрифт Roboto Mono

Обидно, что расстояние между строчками немного уменьшилось.

Автосохранение

Также выставляю автосохранение файлов на минимальное время в одну минуту:

Настройка автосохранения

Рисунок 79 — Настройка автосохранения