Статьи из цикла

Инструкция по установке 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 2017 Community рассказывается как это сделать.

Если вы хотите разрабатывать универсальные UWP приложения, то не забудьте включить режим Режим разработчика в параметрах Windows 10:

Раздел «Обновление и безопасность»

Вкладка «Для разработчиков»

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

Можно язык поменять в настройках Visual Studio:

Выбор настроек Visual Studio

Смена языка Visual Studio

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

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

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

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

Если вы хотите писать приложения под Android, то вам нужно установить JDK. Об этом можно узнать из статьи Установка JDK 8 в Windows. Обратите внимание, что на июль 2019 рекомендую устанавливать по прежнему Java 8, хотя уже вышла Java 12, так как Qt с ними еще не умеет нормально работать. Но может в момент вашего прочтения этой статьи уже всё поменялось:

Ошибка при использовании Java 12

Также вам будет нужен Android SDK и Android NDK. Можно их скачать отдельно, но рекомендую поставить Android Studio и оттуда управлять SDK и NDK с нормальным механизмом обновления. Статья об установке: Установка Android Studio в Windows. Особое внимание уделите на установку пакетов SDK из статьи.

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

Установка NDK

Как было сказано выше, то для тех, кто хочет программировать на Qt под Android, то вам нужен Android NDK.

Итак, после установки Android Studio открываем её. Либо так:

Открытие SDK Manager

Либо так:

Открытие SDK Manager

В разделе SDK Tools отмечаем NDK и устанавливаем его:

Выбор NDK

Диалоговое окно для подтверждения установки

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

Открытие SDK Manager

Теперь Android Studio можно закрывать.

Скачивание Qt

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

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

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

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

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

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

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

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

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

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

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

Установка

Запускаем скаченный файл:

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

Если у вас есть учетка на сайте Qt, то вводите данные, иначе нажимаете Skip:

Ввод данных учетки

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

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

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

В списке компонентов выбираем Qt Creator:

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

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

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

Лично мне у меня 64-битная Windows 10 с Visual Studio 2017 Community, и мне нужно проверять программы как на компиляторе Visual Studio, так и на MinGW. А также нужно программировать под Android. Поэтому я отметил вот эти пакеты:

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

Sources — исходники Qt можно не выбирать, если они вам не нужны.

Рекомендую также выбрать для установки дополнительные компоненты. Их можно выбирать все:

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

Если вам интересна программа Qt 3D Studio и Qt Installer Framework, то можете их отметить:

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

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

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

Лично я у себя в этом окне ввожу Программирование\Qt, но тут для скриншота оставил стандартное значение:

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

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

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

Настройка

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

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

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

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

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

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

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

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

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

../%{JS: Util.asciify("build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}")}

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

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

_build

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

Update 2019-07-13. Сейчас у меня стоит такое значение:

_build/%{JS: Util.asciify("build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}")}

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

*_build*

Настройка для работы с компилятором 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

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

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

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

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

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

Настройки Qt

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

Параметр Android SDK Location

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

Параметр Android SDK Location

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

Параметр Android NDK Location

Нажмите кнопку OK:

Параметр Android NDK Location

Настройки закончились.

Update 2019-07-13. Практика показывает, что Qt не всегда поспевает за изменениями в Android SDK и NDK. Поэтому иногда требуются шаманства с бубном, чтобы всё заработало. Причем каждый раз будут свои проблемы. Что делать? Гуглите те сообщения об ошибках, которые у вас будут возникать и ищите ответ на https://forum.qt.io/. Например, на данный момент Qt не собирает приложения с Android SDK Build-Tools 29 и ему нужна версия 28.

Вначале удаляем 29 версию:

Удаление Android SDK Build-Tools 29

Потом устанавливаем 28 версию и те пакеты, которые удалились вместе с 29 версией:

Установка Android SDK Build-Tools 28

Установка Android SDK Build-Tools 28

Update 2019-07-13. С NDK также могут быть проблемы, так что велика вероятность, что последняя версия NDK у вас не заработает. Тут рекомендую скачать старую версию NDK на официальном сайте https://developer.android.com/ndk/downloads/older_releases. На момент обновления статьи работала NDK версии 19:

Старая версия NDK

Распакуйте отдельно данный архив и укажите в Qt, когда до этого дойдет дело (об этом читайте ниже в статье):

Старая версия NDK в настройках Qt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Потом можно повторить историю с запуском приложения как универсальное приложение Windows:

Выбор компилятора для UWP приложений

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

Обратите внимание на то, что именно с UWP чаще всего возникают проблемы с запуском приложения из-за обновлений Qt и Visual Studio. У меня было много раз, когда после обновления первого или второго продукта UWP приложения с теми или иными сообщениями не хотели запускаться.

Update 2019-07-13. Если честно, то лично у меня работа с UWP приложениями в Qt почти всегда не работает после переустановки Qt и сопутствующих программ. И лишь танцы с бубном иногда спасают ситуацию. Но, например, в данный момент даже они не помогли, и еще до этапа компиляции проекта выводится вот такая ошибка:

Ошибка с приложениями UWP

В своё время была долгая беседа в баг-трекере по поводу этой ошибки: https://bugreports.qt.io/browse/QTCREATORBUG-21366, и программисты Qt никак не могли решить её. В тот раз всё разрешилось обновлением Visual Studio. В чем было дело: я не знаю. Может реально в обновлении было что-то исправлено, или это повлияло лишь косвенно. Но на данный момент такая же проблема у меня проявляется опять и как её решить я не знаю.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда CopyLineDown

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

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

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

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

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

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

Шрифты

Мне нравится шрифт Roboto Mono: красивый, бесплатный (лицензия Apache 2.0), используется по умолчанию в Android. В общем, везде его использую.

Скачать можно его можно тут: https://github.com/google/fonts/tree/master/apache/robotomono.

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

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

Было:

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

Стало:

Шрифт Roboto Mono

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

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

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

Настройка автосохранения<ul><li>Qt logo 2016.svg by Qt Project / (2019-01-26)</li></ul>