Qt вообще не является языком программирования.
«Qt - это кроссплатформенная среда разработки приложений для настольных, встраиваемых и мобильных устройств», говорит официальный сайт . Я ненавижу слово «каркас», хотя оно может относиться к слишком многим вещам, не столько к слову «система», сколько к тому, чтобы все запуталось. Буква «t» в «Qt» обозначает «инструментарий», который описывает его гораздо лучше. На самом деле это набор инструментов. Он также записывается как «Qt», а не «QT». Последний означает Apple QuickTime и имеет мало общего с программированием, хотя даже пользователи Qt часто делают эту ошибку.
Если описание Qt как инструментария на самом деле не проясняет вещи намного больше, чем слово "framework", вот неполный список инструментов, из которых состоит Qt:
- Основным компонентом является набор библиотек, написанных изначально на C ++. Эти библиотеки включают в себя: базовую библиотеку, предоставляющую самые важные вещи, библиотеку графического интерфейса, которая удивительным образом предоставляет компоненты графического интерфейса, сетевую библиотеку, библиотеку XML и многое другое.
- Инструмент MOC, представляющий собой программу для генерации стандартного кода на C ++ для использования вместе с некоторыми макросами, предоставляемыми базовой библиотекой. Это немного расширяет C ++, добавляя приятные функции, такие как более мощный RTTI, механизм сигналов / слотов, аналогичный событиям / делегатам в C #, позволяющий осуществлять безопасные обратные вызовы, механизм плагинов / интерфейсов, который обеспечивает способ расширения приложений путем реализации предопределенного интерфейса .
- Инструмент конструктора GUI и UIC. Qt Designer - это графический инструмент для визуального создания графических интерфейсов и их сохранения в файлах XML, а UIC - инструмент командной строки для перевода этих файлов XML в код C ++.
- Инструменты для интернационализации приложений, а именно Qt Linguist, инструмент
lupdate
и инструмент lrelease
. lupdate
извлекает текстовые строки для перевода из кода C ++ в XML-файл, Qt Linguist представляет собой графический инструмент для переводчика для редактирования этих XML-файлов и предоставления переводов, а lrelease
компилирует переведенные тексты в двоичный файл для загрузки с помощью приложение Qt во время выполнения.
- Инструмент компилятора ресурсов, используемый для интеграции различных файлов данных (например, изображений и звуков) в исполняемый файл, образуя в нем виртуальную файловую систему.
- Инструмент
qmake
, используемый для автоматизации процесса сборки, поэтому вам не нужно запускать MOC, компилятор C ++, UIC и другие вещи вручную.
- Qt Creator, графическая среда разработки для интеграции всего описанного выше в единую среду.
Программы, написанные на переносимом C ++ и использующие Qt, могут быть перекомпилированы без изменений для любой платформы, поддерживаемой Qt. Это включает в себя Windows (по крайней мере, XP и более поздние версии), Linux (практически любой дистрибутив), Mac, различные Unices, такие как FreeBSD, HP-UX, Solaris и многое, многое другое.
Родным языком Qt является C ++, но для других языков предусмотрены привязки, многие из них. Некоторые из этих привязок предоставляются Trolltech (ну, теперь это Nokia), некоторые сторонними разработчиками. Привязки - это не альтернативные реализации Qt для других языков, а специальные дополнения к этим языкам, позволяющие использовать двоичные файлы C ++ Qt. Это может привести ко многим проблемам, различиям в интерфейсе и различной неэффективности, но это не означает, что они не могут или не должны использоваться. Просто C ++ остается основным языком Qt.