Статья
Что такое QT: установка, особенности работы, отзывы программистов
0

Что такое QT: установка, особенности работы, отзывы программистов

by admin02.12.2018

Кросс-платформенная структура QT (КП-структура) используется в качестве графического инструментария, а также полезна при создании приложений CLI. Работает на трех основных настольных ПК, на мобильных ОС (Symbian, Nokia Belle, Meego Harmattan, MeeGo) и на встроенных устройствах, способных воспринимать удлинение интервала QT.

История создания программы

Разработка QT была начата в 1990 году норвежскими программистами Эйриком Чамбе-Энг и Хаавардом Нордом. Их компания Trolltech продавала лицензии QT и предоставляла техническую поддержку. Сегодня фирма носит название The QT Company и является дочерней компанией Digia Plc, расположенной в Финляндии. Хотя она является основным драйвером, ПО теперь разрабатывается более крупным альянсом.

QT Company дочерняя компания Digia Plc

Он состоит из многих фирм и отдельных лиц по всему миру и работает используя меритократическую модель управления. Каждый, кто хочет, может присоединиться к команде. Есть много способов внести личный вклад в проект QT. Что такое действие предусматривает? Это, например, написание кода или документации для фреймворка, сообщение об ошибках или оказание помощи другим пользователям на форуме и поддержка страницы в интернете.

Хотя любая система построения может использоваться с программой, она имеет собственный qmake. Это межплатформенный интерфейс для основанных на платформе систем сборки, таких как GNU Make, Visual Studio и Xcode. CMake также является популярной альтернативой для разработки проектов. Не многие знают, что такая QT доступна с разными лицензиями. Речь идет о коммерческом и бесплатном программном обеспечении в нескольких версиях GPL и LGPL.

Поддержка QT 4 была интегрирована много лет назад, а QT 5 обеспечила поддержку ПО на ранней стадии. Недавно вышел новый проект — QT Build Suite aka Qbs. Это система сборки на основе QML, которая также поддерживает Javascript и упаковку CMake.

Интегрированная среда разработки

Интегрированная среда разработки

КП-структура поставляется со своей интегрированной средой разработки (IDE) под названием QT Creator, работает на Linux, OS X и Windows. Она предлагает интеллектуальное завершение кода, подсветку синтаксиса, интегрированную справочную систему, отладчик, а также интеграцию для всех основных систем управления версиями, например, git, Bazaar. В дополнение к разработкам QT Creator в Windows можно также использовать надстройку Visual Studio и другие IDE, например, KDevelop на KDE.

КП-структура отлично поддерживает интернационализацию (i18n) и локализацию (l10n). Инструмент QT Linguist и его компаньоны lupdate, lrelease и lconvert облегчают перевод приложений на требуемые языки. Она поддерживает большинство систем записи, которые используются сегодня. Графический интерфейс создается непосредственно на C ++. Отметим, что QT такое действие выполняет с использованием модуля Widgets. Также она поставляется с интерактивным графическим инструментом QT Designer, который функционирует, как генератор кода для графических интерфейсов на основе Widgets. QT Designer может использоваться автономно.

Разработка графического интерфейса

QTQuick предоставляет требуемые модули для создания графического интерфейса с QML. Можно писать целые приложения только в QML, но, как правило, GUI написан в QML, а backend приложения реализованы на C ++. Кроме того, Creator имеет встроенный графический дизайнер QTQuick и профилировщик.

КП-структура — это гораздо больше, чем простой набор инструментов GUI. Она предоставляет собой модули для кросс-платформенной разработки в области сетей, баз данных, OpenGL, веб-технологий, датчиков, протоколов связи (Bluetooth, последовательных портов, NFC), обработки XML и JSON, печати, генерации PDF, интервала QT и многого другого.

Приложения, использующие это ПО, обычно записываются в C ++, а привязки QML к другим языкам существуют и могут быть предоставлены третьими лицами. Riverbank Computing, например, это коммерческое и бесплатное программное обеспечение Python bindings (PyQT).

Нужно особенно подчеркнуть, что такое QT имеет множество атрибутов, которые могут быть изменены с помощью геттеров и сеттеров. Если атрибут называется foo, связанный getter и setter будут иметь подписи: T foo () const и void setFoo (const T).

Интервал QT расширяет систему атрибутов, геттеров и сеттеров, которые являются свойствами. Нужно пояснить специфическую терминологию. Свойство — это значение любого типа, к которому можно получить доступ, быть измененным или постоянным, а также уведомить об изменении. Система собственности полезна, особенно в третьей части (QML).

Иерархия классов ПО

QT широко использует наследование, особенно в модуле Widgets. QObject — это базовый класс. Он предоставляет некоторые очень мощные возможности:

  • Можно установить имя как строку для поиска объектов.
  • Родительскую систему.
  • Сигналы и слоты.
  • Управление событиями.
  • Виджеты могут реагировать на события и использовать систему родительских систем, сигналов и слотов. Они наследуются от QObject. Самый простой виджет — QWidget. Он содержит большинство свойств, которые используются для описания окон или виджетов, таких как положение и размер, курсор мыши и всплывающие подсказки.

    Удлинение интервала QT

    В QT виджет также может быть окном. Таким образом, нет необходимости в классе QWindow. Почти все графические элементы наследуются от QWidget:

  • QAbstractButton, базовый класс для всех типов кнопок.
  • QT удлинение масштаба.
  • QPushButton.
  • QCheckBox.
  • QRadioButton.
  • QFrame, который отображает рамку.
  • QLabel, который отображает текст или изображение.
  • Это наследование выполняется для облегчения управления свойствами. Некоторые из них, такие как размер и курсоры, могут быть применимы на других графических компонентах, а QAbstractButton предоставляет качества, которые совместно используются всеми кнопками.

    Система родительского контроля

    Система родительского контроля

    Данная система управления — это удобный способ работы с объектами в QT, особенно с виджетами. Любой объект, который наследует QObject, может иметь родительские и дочерние элементы. Это дерево иерархии делает работу удобной:

  • Когда объект уничтожается, все его родительские связи также убираются. Таким образом, вызов delete становится необязательным.
  • Дочерние виджеты в QWidget автоматически появляются внутри родительского.
  • Почти все инструменты пользовательского интерфейса имеют механизм для обнаружения действия и реагируют на него.

    Сигналы и слоты

    QT предоставляет две концепции высокого уровня: сигналы и слоты. Сигнал — это сообщение об изменении статуса объекта. Слот является функцией, которая используется для приема и ответа на сигнал.

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

    Гипотетический класс, используемый для проверки прогресса, может давать сигнал, имеющий подпись: void MediaProgressManager :: tick (int miliseconds). Если разработчик подключит сигнал к слоту, который не использует одни и те же параметры, пользователь получит предупреждение: QObject :: connect : Несовместимые аргументы отправителя / получателя.

    Это связано с тем, что сигнал передает информацию в слот с использованием определенных параметров.

    Особенности концепций:

  • Один сигнал может быть подключен к нескольким слотам.
  • Многие сигналы могут быть подключены к одному слоту.
  • Сигнал может быть подключен к другому сигналу — это называется ретрансляция.
  • Второй сигнал отправляется, если поступил первый.
  • Поиск проблем компиляции

    При компиляции программы, особенно в ситуациях, когда добавляется макрос Q_OBJECT, может возникнуть ошибка: main.cpp: undefined reference to vtable for Window’.

    Это связано с тем, что компилятор не запускается в классе метаобъекта. В этом случае перезапускается qmake, выполнив команду Build> Run qmake. Кнопка является стандартным компонентом графического интерфейса КП-структуры. Она часто используется, чтобы сделать уникальный выбор из списка, например, в QT QRadioButton для создания переключателей.

    Поиск проблемы

    Благодаря своему наследию QRadioButton ведет себя точно так же, как QPushButton. Все свойства у них одинаковы. По умолчанию QRadioButtons не сгруппированы, поэтому многие из них могут быть проверены одновременно. Чтобы иметь «исключительное» поведение многих переключателей, нужно задействовать QButtonGroup. Это делают следующим образом: выделяют новую группу кнопок и присоединяют ее к родительскому объекту. Обратите внимание, что он может быть главным окном.

    Установка SDK для Symbian и Nokia

    Чтобы начать использовать приложения QT, нужно получить его библиотеку и IDE. Их можно создавать из источника или загружать в виде SDK. Они включают в себя множество функций, таких как кросс-компиляторы для Symbian и Nokia. Обязательно применяют эти пакеты:

  • Документация QMake.
  • Документация QT.
  • QT 4.8.1 Destkop.
  • QT Creator.
  • Можно выбрать другие пакеты, если требуется разработка для Symbian / Maemo / Meego, а также те, которые имеют более старую версию QT. В Linux лучше использовать пакеты, которые предоставляет дистрибутив. QT Creator должен быть доступен почти во всех дистрибутивах. При распаковке он устанавливает все зависимости, например, библиотеки, компиляторы и заголовки разработки.

    Теперь можно создать первое окно, написав обычное «Привет мир».

    Установка SDK для Symbian и Nokia

    Прежде чем делать первое графическое приложение, открывают Creator IDE для C ++, который очень хорошо подходит для кодирования приложений QT. Он предоставляет браузер doc и «дизайнер», что упрощает создание окон. Все они вкраплены в хорошо продуманный пользовательский интерфейс.

    QT используется для указания того, какие библиотеки и модули имеются в проекте. Поскольку обычно первое приложение представляет собой небольшой графический интерфейс, пользователям понадобятся QTCore и QTGui. Теперь добавляют точку входа приложения. Берут файл или проект C ++. Исходный файл C ++ должен выполнить задание. Следуют за мастером, устанавливая файлу название main. После этого проект готов. В файле проекта появляется новая QT строка, автоматически добавленная Creator.

    QApplication — очень важный класс. Он заботится о входных аргументах и о цикле событий. Запускается при вызове app.exec (). Чтобы скомпилировать это приложение, нажимают на зеленую стрелку слева внизу. Creator скомпилирует и выполнит удлинение интервала QT. Цикл событий будет запущен и станет ожидать действий, таких как щелчки мыши в графическом интерфейсе.

    После компиляции пользователь увидит первое QT окно. Как это будет выглядеть на экране, показано на фото ниже.

    Установка SDK для Symbian и Nokia

    Система сборки Gmake

    Creator выполняет задачу вызова системы, но важно знать, как скомпилированы программы QT. Если они небольшие, это легко выполнить вручную, создав файлы объектов, а затем соединив их. Но для больших проектов командная строка является сложной для написания. В Linux все программы скомпилированы с использованием make-файла, который описывает командные строки.

    Gmake — это система сборки, которая поставляется с QT программой. Она генерирует make-файлы для разработчика. С помощью простого синтаксиса создается файл, который используется для компиляции программы QT. Но это не единственная цель.

    QT использует метаобъекты для расширения функциональных возможностей C ++, qmake отвечает за подготовку файла, который содержит эту фазу извлечения.

    QT приложение компилируется в 3 шага:

    • .Pro файл записывается для описания проекта для компиляции.
    • Файл make создается с помощью qmake.
    • Программа построена с использованием NMake на окнах.

    Установка Creator в Windows

    Установка Creator в Windows

    Чтобы установить программу, переходят на официальный сайт Creator и загружают ПО. Выбирают рекомендуемый загрузчик:

  • QT Online Installer для Windows. Нажимают кнопку «Загрузить» внизу страницы, после чего начинается процесс.
  • Запускают установщик QT Creator .exe, дважды щелкнув мышкой, чтобы запустить прилагаемое приложение, в котором он будет установлен на ПК.
  • Для большинства экранов можно просто нажать «Далее», чтобы перейти к следующему варианту.
  • На экране «Регистрация» можно кликнуть «Пропустить».
  • На экране вора компонентов не выбирают какие либо версии с надписью Alpha, Beta или Preview, а устанавливают MinGW.
  • Разворачивают треугольник QT, затем QT 5.11.2, а затем флажок MinGW 5 .xx 32 бит.
  • Если этого не сделать, компьютер не сможет скомпилировать и запустить программы на C ++.

    Для всех последующих экранов выполняют QT Windows:

  • Нажать «Далее», «Согласиться» или «Установить», чтобы завершить установку.
  • После этого кликнуть «Готово», чтобы запустить Creator.
  • Попробовать скомпилировать / запустить образец проекта.
  • Убедиться, что все части работают правильно, запустить проект, который использует библиотеки Stanford C ++.
  • Загрузить следующий файл ZIP проекта на компьютер: sample-project.zip. В нем должен быть каталог с именем sample-project и несколькими папками внутри.
  • Открыть проект. В Creator выбрать «Файл» → «Открыть файл или проект …» или нажать Ctrl + O (Command + O на Mac).
  • Перейти в папку образца проекта и открыть файл sample-project.pro. Creator задаст несколько вопросов о том, как настроить процесс сборки для этого проекта.
  • Пользователь просто принимает значения по умолчанию и нажимает «Настроить проект».
  • Советы для чайников

    Чтобы пользоваться программой, нужна специальная информация о ее функциях. Самый полный пакет документации находится в сети разработчиков. Он предоставляет DocNotes, которые могут быть добавлены пользователями.

    Если QTSDK был установлен правильно, документация, соответствующая текущей версии QT, должна быть также установлена. Также можно использовать QT Assistant, который является автономным браузером doc.

    Важные разделы документации:

  • QT Assistant.
  • QT Designer.
  • QT Linguist.
  • QMake.
  • Самым важным компонентом является справочная документация QT. Она обеспечивает хорошее введение многих компонентов. Этот список указан на странице «Все классы». Еще одна интересная страница — та, в которой перечислены все модули. На ней представлена информация о различных компонентах.

    Документация по классам организована таким образом:

    • Имя и краткое описание класса.
    • Наследование.
    • Перечисления.
    • Свойства.
    • Общественные методы.
    • Открытые слоты.
    • Сигналы.
    • Защищенные методы.

    Отзывы

    Ежегодно увеличивается количество пользователей QT. Программисты в своих отзывах не просто пишут, что структура достаточно удобная, недорогая, качественная, но и объясняют новичкам все ее достоинства. Вот некоторые из них:

    • Интерфейс чист и понятен. Он имеет все необходимые инструменты для вывода консоли, отладки, трассировки, а также включает полезную функциональность для перехода между функциями и их определениями.
    • Функциональность QT для создания, отладки и отслеживания чрезвычайно полезна, особенно это актуально, когда пользователь пытается найти ошибки в коде программного продукта.
    • Можно легко перейти к разделу кода, который, вызывает проблему, видеть локальные переменные и их содержимое в режиме реального времени.
    • Дизайнер UI / форм — это огромная экономия времени при построении сложных интерфейсов. Если его не использовать, потребуются ручные записи XML вручную.
    • В QT его библиотеки и компиляторы легко сохранить в настройках профиля для удобства переключения и дальнейшего использования.

    Как видим, с помощью кросс-платформенной структуры можно охватить все целевые платформы с одной технологией и кодовой базой, что минимизирует время выхода на рынок и нагрузку на обслуживание.

    Источник

    About The Author
    admin

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *