Первая версия Qt была выпущена в 1995 году. С тех пор библиотека используется в большом количестве проектов. Например, такие популярные программы как Wireshark или Libre Office написаны с использованием Qt.
Библиотека кроссплатформенная и поддерживает все основные операционные системы, включая мобильные. Содержит множество классов, начиная с набора графических компонентов и заканчивая компонентами для работы с сетевыми протоколы и базами данных.
В отличие от других библиотек написанных на C++, Qt использует собственный метаобъектный компилятор (Moc) для предварительной обработки исходного кода перед компиляцией. Такой подход позволяет реализовать так называемую концепцию сигналов и слотов, что позволяет реализовать шаблон «Наблюдатель», минимизируя написание повторяющегося кода. Концепция заключается в том, что компонент (например, виджет) может посылать сигналы, содержащие информацию о событии (например: была нажата кнопка, была открыта новая вкладка). В свою очередь другие компоненты могут принимать эти сигналы посредством специальных функций — слотов. Система сигналов и слотов хорошо подходит для создания пользовательских графических интерфейсов. Также механизм сигналов/слотов может быть применён для асинхронного ввода-вывода (включая сокеты, устройства с последовательным интерфейсом) или уведомления о событиях.
Основные модули библиотеки Qt:
- QtCore — классы ядра библиотеки, которые используют другие модули;
- QtGui/QtWidgets — классы графического интерфейса;
- QtQML — поддержка QML;
- QtNetwork — набор классов для сетевого программирования;
- QtOpenGL — для работы с OpenGL;
- QtSql — классы для работы с базами данных;
- QtScript — классы для работы с Qt Script;
- QtXml — парсер для работы с XML;
- QtTest — классы поддержки модульного тестирования;
- QtWebEngine — модуль Chromium;
- QtMultimedia — классы поддержки воспроизведения и записи видео и аудио.
В комплектацию библиотеки так же входят:
- Qt Creator — один из лучших бесплатных редакторов для разработки программ с использованием последнего стандарта языка C++14;
- Qt Linguist — утилита для упрощения процесса локализации и перевода разрабатываемого программного обеспечения;
- Qt Assistant — справочная система Qt, которая так же позволяет создавать справку для разрабатываемого ПО.
Qt распространяется по трем лицензиям, причем исходный код един для всех вариантов лицензий:
- Qt Commercial — для разработки ПО с собственнической лицензией, допускающая модификацию Qt без раскрытия изменений;
- GNU GPL — для разработки с открытыми исходными текстами, распространяемых на условиях GNU GPL, а также для модификации Qt;
- GNU LGPL — для разработки ПО с собственнической лицензией.
Отличительной особенностью Qt является наличие качественной документации и большого количества примеров. Весь исходный код качественно отформатирован и снабжен комментариями, что значительно упрощает изучение библиотеки.
Установка Qt
Сейчас существуют онлайн инсталляторы Qt для всех популярных операционных систем, которые можно скачать с официального сайта.
Процесс установки с использованием онлайн инсталлятора идентичен для Windows, Linux и MacOS. Главные отличия заключаются в компиляторе, который может быть установлен. Для Windows это MinGW, а для Linux и MacOS — GCC или Clang.
После запуска установщик из онлайн репозитария автоматически получает информацию о доступных версиях Qt и предоставляет возможность выбора компонентов для установки. Рекомендую устанавливать последнюю доступную на сегодня версию Qt 5.12.0.
Если вы пользователь Windows XP, то последняя версия, которая будет у вас работать это Qt 5.6.3.
Порядок установки (для Windows):
- Сначала выбираем версию Qt 5.12.0, которую мы будем устанавливать. Видим, что предкомпилированные компоненты доступны для компиляторов Microsoft Visual Studio и MinGW 7.3.0. Выбираем компоненты для бесплатного компилятора MinGW 7.3.0 64-bit.
- Затем в разделе «Tools» выбираем уже непосредственно наш компилятор MinGW 7.3.0 64-bit, редактор Qt Creator. Нажимаем кнопочку установить, соглашаемся с лицензионным соглашением и ждем, пока инсталлятор загрузит и установит выбранные компоненты.
Установка Qt таким способом очень проста и не требует ручного задания и редактирования переменных окружения. Все окружение будет автоматически настроено и в редакторе Qt Creator появится уже настроенный профиль для выбранной версии Qt и компилятора.