Разное

Среда разработки qt: Qt Creator — A Cross-platform IDE for Application Development

Содержание

Краткий обзор кроссплатформенного фреймворка Qt

Qt —  это кроссплатформенный фреймворк для разработки ПО на языке программирования C++(и не только). Также имеется и для Ruby — QtRuby, для Python — PyQt, PHP — PHP-Qt и других языков программирования. Разрабатывается компанией Trolltech с 1996 года.

С использованием этого фреймворка написано множество популярных программ: 2ГИС для Android, Kaspersky Internet Security, Virtual Box, Skype, VLC Media Player, Opera и другие. KDE — это одно из окружений рабочего стола со множеством программ для Linux написано с использованием фреймворка Qt.

Qt полностью объектно-ориентированная, кросс-платформенная. Дает возможность разрабатывать платформо-независимое ПО, написанный код можно компилировать для Linux, Windows, Mac OS X и других операционных систем. Включает в себя множество классов для работы с сетью, базами данных, классы-контейнеры, а также для создания графического интерфейса и множество других(чуть ниже).

Qt использует MOC (Meta Object Compiler) для предварительной компиляции программ. Исходный текст программы обрабатывается MOC, который ищет в классах программы макрос Q_OBJECT и переводит исходный код в мета-объектный код, после чего мета-объектный код компилируется компилятором C++. MOC расширяет функциональность фреймворка, благодаря ему добавляются такие понятия, как слоты и сигналы.

В Qt имеется огромный набор виджетов (Widget), таких как: кнопки, прогресс бары, переключатели, checkbox, и другие — они обеспечивают стандартную функциональность GUI (графический интерфейс пользователя). Позволяет использовать весь функционал пользовательского интерфейса — меню, контекстные меню, drag&drop.

Одно окно в разных ОС

Как видно на картинке, программы имеют родной внешний вид в различных операционных системах.

Qt имеет среду разработки Qt Creator. Она включает в себя Qt Designer, с помощью которого можно создавать графический интерфейс. Визуальное создание интерфейса позволяет легко и просто создавать интерфейс, перетаскивая различные виджеты(выпадающие списки, кнопки, переключатели) на форму.

Форма в Qt Designer

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

Состав библиотеки Qt

Библиотека Qt состоит из различных модулей, которые подключаются при помощи директивы #include. В состав входят:

QtCore — классы ядра библиотеки Qt, они используются другими модулями.

QtGui — модуль содержит компоненты графического интерфейса.

QtNetwork — модуль содержит классы для работы с сетью. В него входят классы для работы с протоколами FTP, HTPP, IP и другими.

QtOpenGL — модуль содержит классы для работы с OpenGL

QtSql — содержит классы для работы с различными базами данных с использованием языка SQL.

QtSvg — содержит классы, позволяющие работать с данными Scalable Vector Graphics (SVG)

QtXml — классы для работы с XML

QtScript — классы для работы с Qt Scripts

Имеются и другие модули.

В данный момент Qt распрастраняется по 3-м лицензиям: Qt Commercial(собственическая), GNU GPL, GNU LGPL.

Заключение

В настоящее время Qt фреймворк активно развивается. Имеет интуитивно понятное API, огромную документацию с большим количеством примеров, мощнейшую среду разработки QtCreator и дополнительный инструментарий. Этот фреймворк стоит Вашего внимания.

Подробный обзор, настройка и установка Qt Creator

Qt Creator по прежнему является чрезвычайно надежным ПО. Почему же он остается одним из лучших на рынке. Об этом узнаем в подробнейшем обзоре.

О Qt Creator

Qt Creator — это полнофункциональная интегрированная среда разработки (IDE) для приложений C ++, QML и JavaScript. Это комплексная кроссплатформенная IDE, которая разрешает пользователям масштабироваться выше кода и создавать подключенные устройства, приложения и пользовательские интерфейсы.

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

  • множества встроенных платформ
  • настольных систем
  • мобильных устройств, включая iOS и Android.

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

  • кодирования,
  • проектирования,
  • развертывания,
  • тестирования
  • мониторинга.

Простой и интуитивно понятный интерфейс Qt Creator делает процесс обучения более плавным.

Другие функции, которые делают разработку приложений быстрой и легкой, включают:

  • создание пользовательского интерфейса
  • инструменты профилирования
  • визуальную отладку
  • интегрированную разметку графического интерфейса
  • конструктор форм.

Официальный сайт Qt Creator.

История Qt Creator

Во многих видах экономической деятельности для разработки ПО используется Qt Creator. Группа разработчиков с данным продуктом дебютировала в далеком 1995 году в г. Эспоо. Компания имеет офисы во множестве стран и на разных континентах.

Например:

  • Россия
  • Финляндия
  • Китай
  • Япония
  • Германия
  • Южная Корея
  • Норвегия
  • Франция
  • США
  • Великобритания
  • Индия
  • Италия

В результате, свыше миллиона разработчиков по всему миру используют технологию Qt.

Возможности Qt Creator IDE

  • Редактор кода с автозаполнением и подсветкой синтаксиса
  • Перетаскивание и дизайн пользовательского интерфейса
  • Инструменты профилирования
  • Визуальная отладка
  • Интегрированный графический интерфейс
  • Дизайнер форм
  • Управление проектом
  • Qt assistant

Технические характеристики

Поддерживаемые устройства

Языки

  • английский
  • китайский язык
  • испанский
  • русский

Ценообразование

  • Бесплатно
  • Ежемесячный платеж
  • Quote база

Инструменты и платформы

Qt Creator включает в себя множество эффективных инструментов и платформ. Рассмотрим основные из них.

Платформа управления проектом

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

Основные функции платформы:

  • Гарантия что дизайн и реализация продукта ориентирован на будущее с возможностью масштабирования
  • Совместно с вашей командой спроектируют дизайн ПО чтобы убедиться, что он соответствует заданной производительности и функциональности.
  • Пожизненная расширенная поддержка на платформе

Платформа для создания устройств

Платформа предоставляет правильные инструменты разработки и технология для создания встроенных систем. В результате, успешно создавайте высокопроизводительные встроенные системы с 3d пользовательскими интерфейсами.

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

Настройка на устройстве

Пользователи имеют доступ к удаленной настройке ПО. Чтобы настроить этот инструмент, необходимо выполнить пробный запуск на удаленном компьютере, а другой на стороне хоста.

Виртуальная клавиатура

Виртуальная клавиатура обеспечивает интерфейс и структуру ввода на рабочих столах Linux. Инструмент имеет настраиваемый стиль и раскладку клавиатуры, который динамично переключается.

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

  • масштаб разрешения
  • поддержка рукописного ввода
  • обратная звуковая связь
  • предварительный просмотр символов
  • кроссплатформенные функции

Платформа разработки приложений

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

Редактор моделей

Этот инструмент используется для разработки стилей моделей универсального языка (UML) с поведенческими и структурированными диаграммами.

Qt Assistant

Qt Creator автоматизирует различные задачи, такие как создание проекта, предоставляя помощника, который шаг за шагом помогает в процессе реализации проекта. Кроме того, с помощью Qt Assistant есть возможность просмотреть документацию по QT.

К тому же он значительно ускоряет выполнение определенных задач.

Например:

  • проверка синтаксиса кода
  • написание кода
  • завершение кода
  • семантическая подсветка
  • прочее

Редактор кода

Редактор кода включает в себя:

  • авто завершение кода
  • семантическую подсветку
  • отступ кода
  • проверку синтаксиса
  • встроенные индикаторы ошибок
  • контекстно – зависимую справку

В этом редакторе вы можете написать качественно отформатированный код, выделив блоки и элементы. К тому же, он проверяет наличие ошибок во время написания кода и отображает их в строке.

Другие особенности редактора кода:

  • поможет завершить код, предвидя что вы собираетесь писать
  • выполняйте отступы для текста и кода в соответствии с вашим отдельно указанным правилом
  • позволяет сотрудничать с другими разработчиками выбирая и вставляя фрагменты кода с сервера

Преимущества и недостатки Qt Creator

Преимущества

  • Редактор кода. Еще одна особенность — редактор исходного кода. Эта функция поставляется с возможностью автозаполнения и подсветки синтаксиса. Кроме того, Qt Creator поддерживает декларативную разработку пользовательского интерфейса (UI) через свой модуль Qt Quick.
  • Совместимость. Одним из приятных аспектов Qt Creator является его кроссплатформенная совместимость. Пользователи могут просто создать приложение в Windows и переместить его в Linux или Mac, открыть его в локальном Qt Creator, и оно будет соответствовать. Это позволяет извлечь максимальную пользу и заставить работать так, как это могут себе представить как начинающие, так и опытные разработчики.
  • Разработка и внедрение. ПО предлагает комплексные и интуитивно понятные API. В результате, поддержка кросс-компиляции обеспечивает быструю разработку, создание прототипов и реализацию проектов
  • Надежная и стабильная платформа. Qt Creator предлагает мгновенную и беспроблемную аппаратную интеграцию с полной оптимизацией и без издержек. К тому же вы имеете абсолютный контроль над своим кодом.
  • Интуитивно понятный пользовательский интерфейс. Дизайн этого ПО, разработка и программирование сценариев позволяют создавать гибкие пользовательские интерфейсы. Кроме того, есть возможность выбрать лучший подход к проектированию.
  • В результате, пользовательский интерфейс обеспечивает ощущение и внешний вид рабочего стола. К тому же, стиль существующего пользовательского интерфейса элементарно изменяется и настраивается.
  • Настраиваемый UX. Это ПО позволяет настраивать и создавать современный интерфейс, чтобы предоставлять конечным пользователям естественный пользовательский опыт во всех средах. Qt Creator предлагает создание интерфейсов, масштабируемых для экранов разных размеров.
  • Масштабирование. ПО обеспечивает эффективную оптимизацию производительности аппаратных ресурсов с помощью С++, QML или других языков программирования. Кроме того, можно увеличивать масштаб до уровня с несколькими экранами и уменьшать его чтобы сосредоточиться на небольших устройствах.
  • Легкость. Это ПО является гибким и простым в использовании, а его инструменты и функции доступны для упрощения процесса разработки. К тому же, кроссплатформенное ПО предлагает библиотеки и API. Qt Creator ориентирован на будущее, так как позволяет изменять требования.

Недостатки

Даже у самого лучшего ПО есть огрехи, к сожалению, Qt Creator IDE не является исключением.

  • Отключение. Пользователи жалуются на неожиданное завершение работы. Таким образом, данное явление негативно влияет на рабочий процесс и производительность.
  • Расположение поисковой системы. Пользователь тратит много времени на поиск данного инструмента.
  • Библиотека редко обновляется, поэтому пользователи ограничены уже имеющимися материалами и ресурсами. Чтобы улучшить рабочий процесс пользователей, Qt Creator необходимо регулярно обновлять библиотеку.

Установка и настройка

Устанавливаем фильтры

  • sudo apt-get install build-essential libgl1-mesa-dev
  • sudo apt-get install libqt5webkit5-dev

Устанавливаем саму программу

  • sudo apt-get install qtcreator

Создаём папку для сохранения проектов по умолчанию

  • mkdir ~/qtprojects
  • sudo apt-get install qtbase5-examples qtdeclarative5-examples
  • ln -s /usr/lib/x86_64-linux-gnu/qt5/examples/quick/shared/ ~/shared

Видео

Вывод

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

 

Установка и настройка Qt Creator

С каждым годом становится все больше операционных систем, и потому разработчикам все труднее удовлетворять потребности пользователей. Три самые популярные компьютерные платформы — Windows, Linux и Mac OS, а также три мобильные — Android, iOS и Windows Mobile — продолжают активно бороться между собой. А это значит, что качественное приложение должно работать на всех основных платформах.

Справиться с этой проблемой помогает кроссплатформенная разработка. Об одной из самых популярных кроссплатформенных сред разработки — Qt Creator — и пойдёт речь в этой статье. Мы рассмотрим как выполняется установка и настройка Qt Creator, а также как работать в Qt Creator.

Содержание статьи:

Что такое Qt Creator

 

Qt Creator (не так давно имевший название Greenhouse) — это одна из самых распространенных кроссплатформенных IDE. Ее плюсы — удобство, быстрота работы, а также — свободность, так как это ПО с открытым исходным кодом. Поддерживаются такие языки, как C, С++, QML.

Программа была написана компанией под названием Trolltech, которая в полной мере выполнила цель создания среды — работу с графическим фреймворком Qt. Удобный графический интерфейс с поддержкой Qt Widgets и QML, а также большое число поддерживаемых компиляторов позволяют быстро и удобно создать свое кроссплатформенное приложение.

Главная задача этой IDE — обеспечить наиболее быструю кроссплатформенную разработку, используя собственный фреймворк. Благодаря этому разработчики получают прекрасную возможность не писать приложения нативно (т. е. отдельно под каждую платформу), а создать общий код, и, возможно, подогнать его под особенности используемых ОС.

Qt Creator также включает в себя утилиту Qt Designer, что позволяет обработать внешний вид окна приложения, добавляя и перетаскивая элементы (аналогично Windows Forms в Visual Studio). В качестве систем сборки используются qmake, cmake и autotools.

Установка Qt Creator

Итак, пора рассмотреть как установить Qt Creator. Если для Windows разработчики позаботились и сделали оффлайн-установщик, то в Linux 32-bit этой возможности не предусмотрено. Поэтому во время установки вам может потребоваться стабильное интернет-соединение (~20-30 минут). Для начала скачаем установщик:

После окончания загрузки переходим в папку с файлом, нажимаем правой кнопкой мыши и выбираем пункт «Свойства».

Теперь перейдем на вкладку «Права» и поставим галочку «Разрешить запуск этого файла в качестве программы».

Запускаем программу.

Теперь нажимаем «Next».

Здесь необходимо выбрать существующий аккаунт или создать его. Данное действие необходимо для проверки лицензии (коммерческой или некоммерческой).

Нажимаем «Next».

Выбираем директорию, в которой будет находиться Qt. Важно, чтобы в пути не было кириллицы и пробелов!

В этом меню находится выбор компонентов. К примеру, можно выбрать установку инструментов для разработки на Android, или же исходных компонентов (это нужно для статической сборки, если кому-то это нужно — напишите в комментариях, и я напишу отдельную статью). Если Вы не уверены, нужны Вам эти компоненты или нет, оставьте их пока так — даже после установки Qt будет возможным удаление и добавление элементов.

В этом окне принимаем лицензию. Жмем «Next».

Если Вы готовы, начинайте установку. У Вас запросят пароль суперпользователя (sudo), после чего начнется скачивание и извлечение файлов. Альтернативный способ — установка через терминал. Для начала необходимо обновить список пакетов.

sudo apt update

Скачиваем и устанавливаем Qt:

sudo apt install qt5-default

Теперь установка Qt Creator:

sudo apt install qtcreator

И, если нужно, исходники.

sudo apt install qtbase5-examples qtdeclarative5-examples

Настройка Qt Creator

После окончания установки перезагрузите компьютер и запустите Qt Creator. Перейдите в меню «Инструменты» -> «Параметры».

Здесь следует рассмотреть несколько вкладок.

1. Среда — это настройка внешнего вида самой IDE, а также изменение сочетаний клавиш и управление внешними утилитами.

2. Текстовый редактор — здесь идет настройка внешнего вида, шрифтов и расцветки редактора.

3. C++ — подсветка синтаксиса, работа с расширениями файлов и UI (т. е. формами).

4. Android — здесь собраны пути к необходимым инструментам, а также в этом меню настраиваются подключаемые или виртуальные устройства.

Установка компонентов Qt Creator

Если вдруг так случилось, что Вы забыли установить какой-то компонент, или, наоборот, хотите его удалить, то на помощь придет Qt Maintenance Tool. Это инструмент, позволяющий управлять всеми компонентами Qt Creator.

Чтобы запустить его, перейдите в меню приложений, выберите пункт «Разработка» -> «Qt Maintenance Tool».

Выберите необходимый пункт (Удалить/добавить компоненты, обновить компоненты или удалить Qt). После выполните необходимые операции и закройте окно.

Работа с Qt Creator — первый проект

Ну что же, час пробил! Установка Qt Creator завершена. Пора сделать свое первое кроссплатформенное приложение на Linux, а затем скомпилировать его на Windows. Пусть это будет… программа, выводящая иконку Qt, кнопку и надпись, на которую по нажатию кнопки будет выводиться случайная фраза. Проект несложный, и, конечно же, кроссплатформенный!

Для начала откроем среду разработки. Нажмем «Файл» -> «Создать файл или проект…». Выберем приложение Qt Widgets — его быстро и удобно сделать. А название ему — «Cross-Platphorm». Вот как!

Комплект — по умолчанию. Главное окно тоже оставляем без изменений. Создаем проект.

Для начала необходимо настроить форму — главное окно приложения. По умолчанию оно пустое, но это не останется надолго.

Перейдем в папку «Формы» -> «mainwindow.ui». Откроется окно Qt Designer:

Удаляем панель меню и панель инструментов на форму, нажав правой кнопкой мыши и выбрав соответствующий пункт. Теперь перетаскиваем элементы Graphics View, Push Button и Label таким образом:

Чтобы изменить текст, дважды кликните по элементу. В свойствах Label (справа) выбираем расположение текста по вертикали и по горизонтали — вертикальное.

Теперь пора разобраться с выводом иконки. Перейдем в редактор, слева кликнем по любой папке правой кнопкой мыши и выберем «Добавить новый…». Теперь нажимаем «Qt» -> «Qt Resource File». Имя — res. В открывшемся окне нажимаем «Добавить» -> «Добавить префикс», а после добавления — «Добавить файлы». Выбираем файл, а в появившемся окне «Неверное размещение файла» кликаем «Копировать».

Получилось! Сохраняем все. Снова открываем форму. Кликаем правой кнопкой мыши по Graphics View, выбираем «styleSheet…» -> «Добавить ресурс» -> «background-image». В левой части появившегося окна выбираем prefix1, а в правой — нашу картинку. Нажимаем «ОК». Настраиваем длину и ширину.

Все! Теперь можно приступать к коду.  Клик правой кнопкой мыши по кнопке открывает контекстное меню, теперь надо нажать «Перейти к слоту…» -> «clicked()». В окне набираем следующий код:

Или вы можете скачать полный проект на GitHub. Работа с Qt Creator завершена, нажимаем на значок зеленой стрелки слева, и ждем запуска программы (если стрелка серая, сначала нажмите на значок молотка). Запустилось! Ура!

Выводы

Установка и настройка Qt Creator завершена. Теперь вы сможете создавать свои программы под огромное число платформ, оставляя код нетронутым! Кстати, установив Qt на Windows, вы сможете скомпилировать этот проект и там. Удачи вам!

Оцените статью:

Загрузка…

Обзор Qt программ / Хабр

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

Популярные проекты










Название Основные функциональные возможности Сайт проекта
Psi Мгновенный обмен сообщениями по протоколу Jabber psi-im.org
Opera Просмотр Web сайтов, почтовый клиент, чтение RSS opera.com
VLC Media Player Медиа плеер с поддержой многих форматов VLC
Skype Мгновенный обмен сообщений, IP телефония skype.com
Google Earth Виртуальный глобус Земли, нарисованный по фотографиям со спутника earth.google.com
KDE Одно из окружений рабочего стола в ОС Linux со множеством программ kde.org
Adobe Photoshop Album Управление цифровыми фотографиями на Вашем компьютере adobe.com
VirtualBox Система виртуализации virtualbox.org

Другие программы с официального сайта Qt

Некоторые свободные проекты хабралюдей

Среди open-source проектов, очень много тех, которые написанны с использованием Q инструментария. Одним из доказательств служит сайт: Qt-Apps.org. Даже на Хабрахабре есть люди, которые вносят вклад в мир Open Source с помощью Qt. Вот список нескольких программ, которые написаны руками хабралюдей.

MountManager
Google сайт проекта | Скриншоты
MountManager — хорошо документированная Linux-программа, предназначенная для быстрого и удобного управления устройствами хранения данных.

Что программа умеет?

  • Указывать различные опции монтирования для устройств
  • Описать некоторые опции более понятным языком
  • Возвращаться к предыдущим настройкам
  • Поддержка расширений, в состав которых входят: монтирование образов, NFS и Samba шар
  • Удобный мастер создания правил Udev для USB устройств, чтобы настроить авто-монтирование

Автор: Assuri

LightLang
Google сайт проекта | Скриншоты
LightLang — это современная система электронных словарей для Linux, сочетающая в себе удобство и простоту использования. Собрав все лучшее, исключив недостатки и добавив множество собственных идей, мы создали самую совершенную программу такого рода. Ее дизайн и архитектура в корне отличаются от всех аналогов, интерфейсы понятные и удобные, а возможности поиска превосходят все ожидания. Использовать LightLang удобно и приятно, изучаете ли вы язык, работаете профессиональным переводчиком или вам просто нужна программа, помогающая понять иностранные тексты — она подойдет каждому.

Автор: Liksys

Juffed
SourceForge сайт проекта | Скриншоты

Juffed — свободный, кроссплатформенный текстовый редактор для программистов и продвинутых пользователей. Подстветка многих языков программирования, дополнение кода, поиск и замена регулярных выражений, поддержка многих кодировок — список стандартных возможностей этой Qt программы.

Автор: Mezomish

Другие интересные проекты

qutIM
Qt-apps страница проекта | Скриншоты

qutIM — довольно молодой проект, но уже успевший стать популярным за счёт того, что он очень похож на QIP. Пользователи Linux не могли использовать QIP под своей любимой платформой, поэтому многие хотели что-то наподобии, но кроссплатформенного. Проект qutIM появился как раз кстати, и многие перешли на него. Поддержка различных тем оформления и иконок делает этот IM клиент хорошей альтернативой Windows клиентам вроде Rambler ICQ или QIP. К тому же стоит отметить лёгкость этого приложения по сравнению с тем же самым QIP.

PictureFlow
Qt-apps страница проекта | Скриншоты


Многие используют популярную технологию CoverFlow от Apple, когда листают альбомы в iTunes, iPod или iPhone, но Qt ни чуть не хуже технологий от Apple. Qt виджет PictureFlow является тем же самым CoverFlow, но менее тяжеловесным.

Возможно, этого мало, чтобы доказать популярность Qt программ, но эта статья точно доказывает успех Qt в open-source сфере. Спасибо за внимание.

P.S. Следующая статья про Qt от меня будет в виде обзора всех IDE, поддерживающих этот инструментарий.

Обзор среды разработки Qt Creator — Статьи по Linux и Open Source (nixp.ru)

Ничто не предвещало, что я быстро и без сожаления перейду на новую интегрированную среду разработки Qt Creator со старого доброго KDevelop, в котором писал программы много лет.

Примечание: Статья была впервые опубликована в электронном издании «Open Source» (выпуск №037 от 31.12.2008). Ее размещение на nixp.ru производится в соответствии с разрешением со стороны редакции и автора материала.

Предисловие

Ничто не предвещало, что я быстро и без сожаления перейду на новую интегрированную среду разработки Qt Creator со старого доброго KDevelop, в котором писал программы много лет. Qt Creator предназначена для разработки на Qt и выпущена корпорацией Nokia, недавно поглотившей Trolltech, в качестве так называемого «technology preview» под версией 0.9. Пусть вас не смущает это словосочетание (technology preview), перевести которое я не решаюсь, а писать русскую кальку не хочу. Продукт вполне годен для ежедневного использования в работе. Свои впечатления о нем я и поведаю в этом обзоре.

Общие сведения

Linux-версия Qt Creator размером около 20 мегабайт доступна на trolltech.com/developer/qt-creator. Именно оттуда я и скачал эту IDE, установив поначалу только ради интереса. Массовая версия Qt Creator распространяется как бинарный файл-установщик. Его можно поставить без прав суперпользователя в локальный пользовательский каталог. Весь Qt Creator устанавливается в один каталог, куда автоматически копируется и статическая версия Qt 4.5, необходимая для функционирования программы. Другая установленная в системе версия Qt при этом не страдает — более того, именно она и будет использоваться для сборки проектов, а вовсе не эта встроенная сборка Qt 4.5, как можно было бы предположить. Qt Creator для Windows занимает гораздо больший объем — порядка 200 мегабайт. Это вызвано тем, что в дистрибутив включена и полная версия Qt 4.4.3, и MinGW. Таким образом, нет смысла качать Qt для Windows отдельно, если вы будете работать в Qt Creator, а вот Linux-пользователям помимо установленной Qt 4.x понадобятся и соответствующие devel-пакеты. Кроме «стабильных» версий Qt Creator на FTP-сервере проекта можно найти и ежедневные бинарные сборки — есть шанс, что ошибки «стабильных» релизов в них исправлены, однако добавлены и новые.

Текущая лицензия на бинарные сборки Qt Creator — отнюдь не GPL, хотя позже обещают распространять и под совместимой с GPL. А вот исходники Qt Creator, доступные через Git, распространяются под GPL 2 и 3 с традиционным для Trolltech (а теперь — уже Nokia) добавлением. Кстати, мне не удалось собрать Qt Creator из исходников. Вероятно, всё же Qt версии не ниже 4.5 для Qt Creator — жизненная необходимость, однако стабильная работа в KDE 4 мне важнее, чем опыт установки Qt 4.5 (пока они не очень «дружат»).

Qt Creator тесно взаимодействует с другими утилитами. В частности, с Qt Designer — для визуального построения интерфейса, а с GDB — для отладки. Первым я не особо пользуюсь, но выглядит это следующим образом: при двойном щелчке по ui-файлу в списке файлов проекта в среде разработки открывается Qt Designer с тем интерфейсом, который определен в выбранном файле.

В отличие, скажем, от KDevelop, Qt Creator в качестве стандартного файла проектов не изобретает новый формат, а использует знакомый Qt-программистам pro-файл — тот самый, который надлежит передавать утилите qmake. Особые настройки проекта, касающиеся самой среды разработки, сохраняются в файл, имеющий то же имя, что проект, но с добавлением в конец слова «user».

Работа в Qt Creator

В Qt Creator есть удобный «мастер» для создания новых проектов, форм, файлов с классами и так далее. Хотя вместо создания ui-файла для главного окна можно было бы вставлять в проект какой-нибудь простой код, не касаясь вотчины визуального программирования. После создания или открытия проекта перед нами предстает сама среда разработки. Поначалу она выглядит непривычно. Например, нет знаменитых табов (вкладок с корешками). Вернее, они есть для всего кроме файлов редактора. Сами же файлы доступны из двух списков: файлов проекта (по умолчанию на панели слева) и уже открытых файлов (в верхней строке панели редактора). Почему же принято решение отказаться от вкладок? Думаю, что ради экономии места на экране.

Еще один непривычный момент довольно относителен, поскольку интерфейс «без диалогов» давно взят на вооружение некоторыми другими программами (например, редактором TEA). В Qt Creator для поиска и замены по тексту появляются поля ввода, при наборе текста в которых найденные совпадения сразу подсвечиваются в редакторе. Для поиска дальше есть F3, а для замены — отдельное поле ввода. Рядом расположены и опции. Благодаря всему этому подобные операции проводятся быстро и удобно. То же касается информационных и отладочных панелей: никакой модальности, лишних окон, перекрывающих основное, и прочих прелестей былого подхода к архитектуре интерфейса. Всё в одном главном окне!

В Qt Creator позаботились и о редакторе кода. Подсветкой синтаксиса нынче мало кого можно удивить, поэтому сразу перейдем к другим полезным возможностям. Например, есть «полный парсер кода» — это возможность редактора проверять код на правильность с точки зрения языка программирования. Когда вы набираете код, то еще до компиляции видите, где допустили синтаксическую ошибку. В большинстве случаев срабатывает, хотя бывают и исключения. Замечательно работает автоматическое дополнение: набрали имя экземпляра класса, поставили точку или «->» — и получаете выпадающий список с членами класса. Есть свёртывание блоков кода — так называемый «фолдинг». Впрочем, я считаю, что код более нагляден без него, поэтому никогда такой возможностью не пользуюсь.

Хорошо сделано перемещение по коду — причем без внешнего ctags. Достаточно поставить курсор на имя функции или переменной и нажать F2, после чего редактор переносит в место объявления. Shift-F2 — переключает между объявлением и кодом, а F4 — просто переключает заголовок и cpp-файл. Если поднести указатель мыши к имени вызываемой в коде функции, то появится подсказка по ее параметрам.

Справочная система работает следующим образом. Допустим, у вас в коде где-то есть переменная типа QMenu. Если поставить на нее курсор и нажать F1, возникает справочная панель с описанием класса QMenu. Также в главном окне существует вкладка Help, где доступна вся документации по Qt.

Главное окно разделено на вкладки:

  • Welcome — экран загрузки проектов. Может быть загружено одновременно несколько.
  • Edit — редактор кода.
  • Debug — вызывает панель отладчика.
  • Projects (или Build&Run в старых версиях) — настройки проекта. Каждый проект имеет два режима сборки: обычный (release) и отладочный (debug). Вот на этой вкладке и можно менять параметры отдельно для режима.
  • Output — консольный вывод программы.
  • Help — помощь.

Итак, большую часть времени вы будете проводить на вкладке редактора. Не совсем понятно, для чего в настройках Qt Creator есть целых пять разделов как бы для разных редакторов — по умолчанию, для скриптов, для С++, для проектов и Perforce (коммерческая система контроля над версиями). Настройки редактора С++ — это и есть настройки редактора кода вашей Qt-программы. Замечу, что в самых свежих «снэпшотах» Qt Creator настройки шрифта всё же упорядочены в единственный раздел, чего и следовало ожидать.

Полезно заняться настройкой подсветки и шрифтов, поскольку по умолчанию работать не очень удобно. Во-первых, размер шрифта слишком мелкий, а во-вторых, блоки кода, заключенные в #ifdef / #endif, трактуются парсером как «disabled code» (выражение из настроек Qt Creator) и раскрашиваются серым цветом — разбирать написанное не очень удобно. Если вам не нравится «фолдинг», там же в настройках редактора отключите Display Folding Markers.

На полях редактора можно ставить закладки и точки останова. Сама панель редактора может быть разделена на бесконечное множество вложенных панелей — подобно Konqueror. Таким образом на экране одновременно можно редактировать либо несколько файлов, либо один и тот же документ, но в разных местах. Для этого надо сначала разделить панель редактора (например, через Window — Split Top/Bottom), а затем выбрать пункт меню Window — Duplicate document. Такой подход иногда бывает полезнее, чем утомительные переходы по закладкам.

Архитектура Qt Creator зиждется на плагинах. Редактор — плагин, движок закладок — плагин, панель с файлами проекта — тоже плагин, и так далее. Список установленных плагинов можно посмотреть в меню Help — About Plugins. Вероятно, в будущем можно будет устанавливать дополнительные плагины, но покамест механизма для этого я не обнаружил, равно как и самих дополнительных плагинов. Зато в самих сборках новые плагины появляются с небывалой скоростью. Только за месяц появились модули поддержки Subversion и Git. Qt Creator вообще сейчас присуща скоротечность. Пункты меню Qt Creator от версии к версии переименовываются и переносятся в другие подменю. Не говоря уже о том, что постоянно рождаются дополнительные функции.

Уделим некоторое внимание окну настроек, которых, благо, много. Можно настраивать сочетания клавиш и, более того, импортировать / экспортировать их с помощью внешних файлов. Это удобно для переноса любимых сочетаний клавиш с машины на машину. В состав Qt Creator по умолчанию входят два таких предустановленных файла: для MS Visual C++ и Xcode. Всё, что связано с автоматическим дополнением, отступами, подсветкой синтаксиса и прочим, находится в настройках редактора — Text Editor.

Другое интересное средство в Qt Creator — это Locator (в старых версиях — Quick find). Для того, чтобы переместить в него фокус, достаточно нажать на Ctrl-K. Выглядит как обычная строка поиска, а служит для быстрого поиска чего угодно в чём изволите. Если говорить конкретнее — ищет файлы, в файлах, классы, функции. Поддерживает символы-модификаторы для уточнения задачи поиска. Например, вы хотите найти в документации Qt описание глобального указателя qApp. Что делать? Раньше приходилось открывать документацию через браузер и искать там. Но в Qt Creator, когда всегда под рукой Locator, достаточно набрать в строке поиска ? qapp и нажать Enter. Перейти на строку под номером 100? Пожалуйста — набираете номер и снова Enter.

И напоследок, вернемся к взаимодействию с отладчиком GDB. Qt Creator через свой графический интерфейс позволяет отлаживать не только текущий проект, но и любую внешнюю программу — конечно, если она собрана с отладочной информацией. При отладке данные различного рода отображаются в отдельных вкладках: нити, переменные, точки останова и дизассемблер. Особенно наглядно выглядит в отладчике экземпляр QStringList — видны все его элементы. Стандартный вывод самого GDB по умолчанию выключен, равно как и некоторые другие вкладки вроде сведений о содержимом регистров процессора. Если программа по какой-то причине «вылетает», то по данным в отладочной панели сразу видно, в каком именно месте кода произошел сбой.

Итоговые впечатления

Казалось бы, какие могут быть «итоги» для программы, которая развивается каждый день и выпуск коей состоится лишь в 2009 году? Однако уже сейчас Qt Creator — это мощная среда разработки. Хотя язык не поворачивается назвать ее «зрелой» — уж больно скоро в ней все меняется.

При ежедневном использовании Qt Creator я не сталкивался с вылетами (кроме ошибки в старой версии, когда при удалении текста вместе с точками останова IDE мгновенно исчезала с экрана) или зависаниями. Впрочем, есть и пара раздражающих моментов. Qt Creator иногда не перечитывает редактируемый извне файл проекта — проблема решается простым make clean, qmake, снова make (и не забудьте перед этим удалить файлы makefile.release и makefile.debug). И второе — при запуске qmake изнутри Qt Creator выполнение qmake почему-то осуществляется трижды. Впрочем, кроме этих замечаний ничего плохого о Qt Creator сказать не могу, и всем советую если не перейти на эту среду разработки, то хотя бы попробовать ее.

Оптимальный путь новичка в мире C++/Qt / Хабр

Часто задаваемый начинающими программистами вопрос – какие материалы читать для повышения своего профессионального уровня? В таком, наиболее общем виде, ответить на данный вопрос невозможно. Это зависит от текущих знаний и умений человека, от его специализации, от задач, которые возникнут перед ним в будущем. Однако я попытаюсь ответить на данный вопрос для того направления программистской деятельности, в котором лучше всего разбираюсь – в создании кроссплатформенных сложных desktop-приложений. Приложений уровня и класса PhotoShop, VisualStudio, MS Word. Таких приложений, в которых с точки зрения программиста возникает больше количество разноплановых задач:

  • Отрисовка классического «офисного» GUI типа кнопок, прогресс-баров, виджетов, анимации.
  • Отрисовка любой нестандартной графики типа непрерывно движущихся графиков из миллионов точек.
  • Работа с базами данных
  • Работа с сетью
  • Работа с реестром операционной системы
  • Работа с принтером
  • Быстрое (в том числе параллельное) выполнение сложных вычислительных задач.
  • И многое, многое другое.

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

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

Итак, для кого предназначен этот текст. Если Вы – выпускник вуза, который решил связать свою жизнь с программированием, то этот текст – для Вас. Поверьте, Вы сэкономите очень много своего времени, если воспользуетесь моими советами на старте своей карьеры. Если Вы закончили вуз несколько лет назад, работаете программистом, но еще не решаете никакие серьезные задачи – то этот текст для Вас. Вы сможете вырасти до действительно серьезных задач, о которых не стыдно будет рассказать потомкам. Если Вы работаете программистом уже около 5 лет, но чувствуете, что у Вас почему-то карьера «не идет», а у сидящих рядом – «идет», то этот текст для Вас. Если Вы являетесь опытным программистом и начинаете идти по пути руководителя, то просто прочитайте этот текст и распространите его среди подчиненных. А если Вы являетесь гуру, который все испытал и которого сложно чем-то удивить, то можете просто прочитать этот текст, чтобы понастальгировать по пройденному пути, вспоминая ошибки или успехи прошлого.

Итак, в чем же заключается этот, оптимальный с моей точки зрения, путь? Очень просто – в изучении в нужном порядке набора фундаментальных книг. Книг не очень много, но и не мало. Те, кто рассчитывают на халяву, могут этот текст сразу закрывать. Книги надо будет читать, сочетая это с практической деятельностью, то есть – с работой начинающего программиста. Как правило, у программистов даже на работе есть некоторые незаполненные работой промежутки времени, и читать в эти промежутки книги – дело святое. Если этих промежутков нет, то возьмите за правило читать вечером. Если на работе – работа, а иного времени нет, то закрывайте текст и не мучайте себя, но и не плачтесь потом о нерастущей зарплате.

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

Сколько времени понадобится, чтобы освоить все эти книги? Хороший вопрос, и самое ключевое слово здесь – освоить. Нужно не просто читать по диагонали, а именно осваивать. То есть применять эти знания на практике, воплощать в коде. Возвращаться к книге, перечитывать с новым понимаем текст. Вот тогда это будет освоение. Вот только тогда это будет накопление той самой базы, которая позволит решать любые задачи. Итак, сколько же времени? Мой ответ – 5 лет. Долго? Да, небыстро. Но опыт показывает, что быстрее нельзя. Хотите за полгода или за год? Нет, не получится, даже если Вы – Эйнштейн. Ни у кого не получалось. В этом особенность программирования в общем и языка C++ в частности. Как говорил мой более опытный коллега, язык С++ — не для криворуких, а создание больших систем – не для слабовольных. Так что если у Вас столько времени или воли нет, для того, чтобы стать опытным, высокооплачиваемым сотрудником, посмотрите куда-нибудь еще. Например, изготовление шаблонных сайтов – куда более простая вещь, чем создание сложных desktop-приложений. Верстальщики и эникейщики – привет!

Итак, приступим к списку книг. Их суммарный объем составляет 5150 страниц. По возможности я буду давать комментарии, почему я рекомендую именно эту книгу, а не иную, или подсказывать альтернативы.

  1. Любая книга по языку С++ объемом не менее 600 страниц. Например, «Герберт Шилдт, C++: полное руководство». 800 стр. Или «Бьерн Страуструп: Язык программирования С++». Лично мне больше нравится Шилдт, но это очень субъективно, а в целом обе книги очень достойные. Главное в той книге, что Вы будете читать – объем! Она должна быть большая! Малая по объему книга хорошо подойдет для сдачи студенческого зачета, но не для профессиональной подготовки. Прочитать 2 малые книги вместо одной большой тоже никакого смысла нет – и структурированного осмысления не наберете, и время не сэкономите. Прочитать такую большую книгу будет непросто (по сравнению с художественной литературой), но это будет действительно самая главная книга в Вашей жизни. Спустя некоторое время после прочтения Вы вполне можете забыть некоторые частности, например, как называется функция, которая округляет double в бОльшую сторону. Но Вы точно должны будете помнить, что такая функция есть, и будете способны эту функцию быстро найти и применить! Пока не прочитали эту книгу, к следующим пунктам переходить большого смысла нет. Практика показывает, что период усвоения книги Шилдта объемом 800 страниц занимает от полугода до года. Эту книгу вполне можно читать еще будучи студентом и нигде не работая. А если Вы работаете программистом и не читали подобной книги – то как Вас вообще взяли на эту работу? Если Вы выбрали книгу, начали читать, а потом поняли, что в ней нет ничего про новые стандарты С++ (С++11, С++14, С++17, С++20), то знайте – на этом этапе Вашего развития это совершенно не критично. Это будет потом, в следующих книгах, а на этом этапе материала будет столько, что с непривычки голова будет идти кругом.

    Что Вы будете знать и понимать, когда изучите эту книгу? Вы будете знать по сути только синтаксис языка C++ и его богатые возможности. Вы научитесь писать студенческий код, но не более того. Когда опытные программисты будут просматривать Ваш код в ознакомительных целях (например, на собеседовании), то они однозначно будут относить его к категории «непрофессиональный код» или, если жестче, «говнокод». Но это нормально! На этом этапе Вы получаете только базу, а все профессиональные тонкости – далее.

  2. «Скотт Мэйерс. Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ». 300 стр. У этого же автора есть еще несколько похожих, альтернативных книг: «Эффективное использование C++. 50 рекомендаций по улучшению ваших программ и проектов», «Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов», «Эффективное использование С++. 35 новых способов улучшить стиль программирования». Книги этой серии – примерно про одно и то же, поэтому можно прочитать только «55 верных советов». Эти книги легко читаются, имеют небольшой объем при хорошей плотности материала. Имея за спиной этот материал, Вы сможете наконец начать понимать, что такое плохой код, из какого незнания он берется и сможете писать его значительно меньше. Вот именно на этом этапе Вы сможете по праву ощутить себя программистом. Пусть начинающим и неопытным, но – Программистом.
  3. «Qt 5.10. Профессиональное программирование на С++. М. Шлее». 1072 стр. Альтернатива – «Qt 4. Программирование GUI на C++. Саммерфилд Марк, Бланшет Жасмин». Альтернатива, на мой взгляд, сильно хуже: материал выглядит разрозненным и неструктурированным плюс погрешности перевода, а вот Шлее – русскоговорящий, там перевода вообще не требуется (такая вот редкая и приятная для нас ситуация в мире программирования). Изучив книгу Шлее, Вы научитесь самостоятельно создавать небольшие GUI-приложения, объемом 5 000-30 000 строк кода. Но сделать что-то более серьезное на данном этапе не получится — нехватка опыта и знаний накроет снежным комом.

    Пункты 2 и 3 можно при желании поменять местами или вообще читать параллельно, но я бы рекомендовал, если крайней необходимости нет и Вы – не Цезарь, этого не делать.

  4. «Стефан Дьюхэрст: Скользкие места С++. Как избежать проблем при проектировании и компиляции ваших программ». 263 стр. Книга классическая для погружения в глубины С++, к сожалению, она несколько устаревает. Воспринимайте её как базу для следующих книг.
  5. «Чистая архитектура. Искусство разработки программного обеспечения. Мартин Роберт». 350 стр. Эту книгу очень приятно читать – она написана простым языком, безупречно переведена, она маленькая, но дает много ценного материала. По сути именно в эту книгу автор вложил весь свой опыт, который он излагал в других книгах на протяжении всей своей жизни. Эта книга – просто жемчужина. Освоив эту книгу, Вы должны будете окончательно расстаться с последними остатками говнокода, что до сих пор иногда выходили из-под Вашего пера. Это еще далеко не Мастерство, и даже не Искусство, но просто годный профессиональный уровень.
  6. Пришло время детально изучить шаблоны проектирования. 3 прошлые книги их немного касались, но лишь чуть-чуть. К моменту, когда Вы дорастете до этого пункта, в Вашей работе точно должны были встречаться шаблоны. Они там были, даже если Вы этого не заметили. Но на этом этапе надо обязательно почувствовать себя архитектором, научиться видеть шире, подняться с уровня «просто кодера» и никогда туда уже не опускаться.

    Итак, книгу в студию! «Погружение в Паттерны Проектирования, Александр Швец». 406 стр. формата А6. Эта книга написана совсем недавно, даже издать еще не успели (ищите в интернете pdf), написана русскоязычным автором. Обычно рекомендуют не эту книгу, а книгу так называемой «банды четырех»: «Гамма, Хелм, Джонсон: Приемы объектно-ориентированного проектирования. Паттерны проектирования». Я сознательно этого делать не буду. Книга Швеца по объему материала в точности соответствует «банде четырех», но при этом написана намного более простым языком; ее объем в несколько раз меньше; нет устаревших примеров на SmallTalk, как у «банды четырех»; и в целом тот формат pdf, который можно найти в сети, очень удобен для чтения на маленьком экране, что неоценимо в метро (проверено – читается хорошо даже в метро, это редкость для профессиональной литературы!)

    Также стоит сказать, что есть еще хорошая классическая книжка «Фримен, Фримен, Сьерра: Паттерны проектирования». Причина, по которой я ее тоже не могу порекомендовать – она содержит примеры на Java вместо С++.

  7. «Интерфейс. Основы проектирования взаимодействия. Купер Алан, Рейманн Роберт М.». 720 стр. Книга здорово учит понимать, что такое – хороший GUI, а что такое – плохой. Альтернатива – книга «Интерфейс: новые направления в проектировании компьютерных систем, Джеф Раскин». Тоже хорошая книга, но она последний раз издавалась в 2005, в то время как Купер обновил свое классическое издание в 2018.
  8. «Чакон Скотт, Штрауб Бен. Git для профессионального программиста». 493 стр. К моменту, когда Вы доберетесь до этой книги, работа с системой контроля версий Git, конечно, будет уже привычным рутинным занятием. Но может случиться, что рабочие процессы, основанные на использовании Git, будут в вашей команде выстроены неоптимально. Это может произойти в случае недостаточной компетенции лидера команды, или устаревших представлений, или просто незнания некоторых возможностей Git. Вот именно для целей оптимизации я и могу порекомендовать эту книгу. Даже несмотря на то, что никакие вопросы оптимизации там вообще не обсуждаются. В книге подробно описываются возможности Git, дается базовое представление о возможных подходах к работе. Вот именно эта база и нужна, чтобы разобраться в том, какие рецепты именно для Вашей команды или компании являются оптимальными. Если же у Вас все хорошо, и есть полная уверенность, что все выстроено и так оптимально, то специально читать книгу по Git я бы не порекомендовал, а вместо этого предложил бы ограничиться статьями в интернете.
  9. Самое время познать параллельное программирование! Это действительно очень сложная тема. Умение создавать хорошие параллельно работающие программы промышленного уровня – это Мастерство. Большинство книг по этой теме либо довольно сложные, либо имеют очень малый охват материала. А коммерческие задачи обычно намного более сложные, чем те академические и во многом искусственные и узкие примеры, что приводятся в подобных книгах. Поэтому в этой области программирования очень сложно порекомендовать одну книгу, которая принесла бы максимальную пользу. Но я попытаюсь.

    Итак, «Прасид Пай, Питер Абрахам: Реактивное программирование на С++». 323 стр. Непосредственно реактивное программирование обсуждается только во второй части книги, а первая часть – это подводящие главы. Вот в них, на мой взгляд, и есть основная ценность данной книги для новичка. В них довольно просто излагаются проблемы, возникающие при параллельном программировании, идет знакомство с простыми путями решения. Бонусом идут описанные относительно простым языком нововведения C++17, C++14, C++11. В англоязычном варианте довольно много нелепостей, но в русском переводе все исправлено, объяснено и расставлено по полочкам. Редкий случай, когда переводчик разобрался в вопросе лучше, чем автор! В общем, книга получилась довольно простой и малой в изложении.

    Альтернатива – книга «Энтони Уильямс: Параллельное программирование на С++ в действии. Практика разработки многопоточных программ». Эта книга большая и исключительно сложно читается. Некоторые главы (например, про модель памяти и неблокирующие структуры данных) понять с первого прочтения вообще невозможно. Правда, для объективности стоит сказать, что этот же материал про неблокирующие структуры данных и в книге Абрахама понять нельзя из-за сильной урезанности материала.

  10. «Хамбл Джез, Фарли Дэвид. Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ». 432 стр. Эта книга покажет, как самому создавать (или руководить созданием) системы непрерывной интеграции, включающие сборку, тестирование, развертывание программных продуктов. Никакой более-менее крупный и долгоживущий программный продукт без этого обойтись не сможет. Альтеранатива – книга «Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска. Дюваль Поль М., Матиас Стивен». Книга Хамбла, на мой взгляд, немного лучше книги Дюваля, поскольку в последней довольно много «воды» и практически нет конкретики.

Вот, собственно и все! Новички, дерзайте!

Чтобы окончательно расставить точки над i, можно оглянуться назад и спросить – а почему в списке книг нет таких известных авторов, как Макконнелл, Ларман, Буч, Фаулер и другие? Просто потому, что изучение книг этих авторов я не посчитал оптимальным путем развития новичка в мире С++/Qt. И так получилось 10 книг с суммарным объемом 5150 страниц, и добавлять туда не столь удачные книги мне показалось перебором.

Обзор возможностей Qt Creator 4.10 и QBS 1.14 для программирования микроконтроллеров / Хабр

Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы представить небольшой обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров. Кому эта тема интересна, добро пожатовать по кат.

Буквально на днях, тихо и незаметно, вышел релиз Qt Creator 4.10, в котором добавлены некоторые улучшения для работы с микроконтроллерами (в простонародье — «baremetal» устройствами). В этот релиз Qt Creator интегрирована сборочная система QBS 1.14 в которой также есть новые улучшения. О некоторых таких улучшениях и пойдет ниже речь.

Улучшения в Qt Creator

Все эти улучшения доступны только при включенном плагине BareMetal, который активируется через меню «Help -> About Plugins -> Device Support -> BareMetal».

  1. Теперь поддерживаются три новых компилятора, основные сведения о которых приведены ниже в таблице:

    Примечание: Стоит заметить, что продукты от IAR EW и KEIL для разных архитектур предоставляются отдельными пакетами, которые нужно устанавливать независимо. В отличии, скажем, от компилятора SDCC который поддерживает несколько архитектур сразу.

  2. Теперь эти новые компиляторы автоматически определяются на вкладке «Tools -> Options -> Kits -> Compilers -> Auto-detected».

    Например, у меня это выглядит следующим образом:

    Примечание: Как видно, для языка С++ отсутствует компилятор KEIL для MCS51, что корректно, т.к. этот компилятор поддерживает только C. Также здесь будет отсутствовать и компилятор SDCC по той же причине.

  3. Имеется также возможность ручного добавления этих новых компиляторов через меню «Tools -> Options -> Kits -> Compilers -> Add»:

  4. Для компилятора будет автоматически определено его ABI (архитектура, формат и ширина слова). Информацию об этом можно посмотреть, просто кликнув на компиляторе.

    Например, у меня для IAR EW и архитектуры 8051 (MCS51) это выглядит следующим образом:

    Примечание: В данном случае был выбран компилятор, который был автоматически определен, поэтому поля ABI здесь неактивные. Но при ручном добавлении компилятора пользователь может выбрать корректное ABI, если по каким-либо причинам оно определилось неправильно.

  5. Для компилятора будут автоматически определены все его макросы. Таким образом они будут корректно подсвечены в редакторе кода.

    Примечание: Исключением являются только ключевые слова некоторых компиляторов (например, для архитектуры 8051), которые будут подсвечены с предупреждением. Но это уже другая история.

  6. Для компилятора будут автоматически определены директории с его заголовочными файлами. Таким образом они будут корректно подсвечены в редакторе кода.
  7. Реализованы парсеры ошибок и предупреждений этих новых компиляторов, которые выводятся в панель «Issues».

Улучшения в QBS

QBS будет неотъемлемой частью данного обзора, поэтому имеет смысл поговорить и об его улучшениях:

  1. Добавлена поддержка этих новых компиляторов (некоторых из них еще с начиная с версии 1.13).
  2. Реализована возможность автоматического определения установленных компиляторов и создания профилей. Для чего используется утилита qbs-setup-toolchains.

    В моем случае это выглядит так:

    c:\Qt-meta\Tools\QtCreator\bin>qbs-setup-toolchains.exe --detect
    ...
    Trying to detect IAR toolchains...
    Profile 'iar-arm' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3/arm/bin/iccarm.exe'.
    Profile 'iar-mcs51' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/8051/bin/icc8051.exe'.
    Profile 'iar-avr' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/avr/bin/iccavr.exe'.
    Trying to detect KEIL toolchains...
    Profile 'keil-mcs51' created for 'C:/Keil_v5/C51/BIN/c51.exe'.
    Profile 'keil-arm' created for 'C:/Keil_v5/ARM/ARMCC/bin/armcc.exe'.
    Trying to detect SDCC toolchains...
    No SDCC toolchains found.
    ...
    


    Чтобы посмотреть что там было обнаружено, можно воспользоваться GUI утилитой qbs-config-ui.

    В моем случае это выглядит так:

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

Тут важно иметь представление и уметь корректно заполнять свойства проекта для модулей cpp и qbs.

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

  • qbs.toolchain — это свойство автоматически заполняется при генерации профиля для выбранного компилятора. Ниже в таблице представлены возможные значения этого свойства:
  • qbs.architecture — это свойство автоматически заполняется при генерации профиля для выбранного компилятора. Ниже в таблице представлены возможные значения этого свойства:
  • cpp.cLanguageVersion — это свойство позволяет установить версию используемого стандарта для языка С. Возможные варианты использования приведены в таблице ниже:
    Примечание: Важно заметить, что тулчейны IAR EW и KEIL не предоставляют возможности выбора версии стандарта. По умолчанию они используют самую свежую версию, реализованную в конкретной версии компилятора (или c99 или c11, нужно смотреть в release-notes к компилятору). Обычно имеется возможность только выбрать старую версию стандарта c89.
  • cpp.cxxLanguageVersion — это свойство позволяет установить версию используемого стандарта для языка С++. Возможные варианты использования приведены в таблице ниже:
  • cpp.entryPoint — это имя точки в хода в программе, которая используется при линковке. Её необходимость определяется используемым рантаймом. Например, если использовать рантайм от IAR EW (т.е. линковаться с её библиотеками и использовать её скрипты линкера), то в этом случае имя точки будет «__program_start». Т.е. это целиком и полностью зависит от разработчика.
  • cpp.driverFlags — это общие флаги, которые будут передаваться компилятору и ассемблеру. В некоторых случаях, они также будут передаваться и линковщику (это зависит от типа тулчейна). Этими флагами могут быть флаги указания типа процессора, сопроцессора и т.д.

    Например, для компилятора IAR EW для архитектуры AVR это могут быть:

    cpp.driverFlags: ["--cpu=can128", "-ms"]

  • cpp.driverLinkerFlags — это флаги, которые будут передаваться линковщику без изменений, в отличии от cpp.linkerFlags, которые могут быть автоматически дополнительно обернуты некоторыми ключевыми словами. Для компиляторов IAR EW и KEIL предпочтительнее использовать cpp.driverLinkerFlags, т.к. эти компиляторы всегда используют отдельный исполняемый файл линковщика для линковки. Для компилятора SDCC предпочтительне использовать cpp.linkerFlags, т.к. команды этого компилятора в чем-то аналогичны компилятору GCC.
  • cpp.commonCompilerFlags — это общие флаги, которые будут передаваться как компилятору C так и компилятору C++.

    Например, для компилятора IAR EW это может быть флаг включения специфичных расширений данного компилятора:

    cpp.commonCompilerFlags: ["-e"]

  • cpp.сFlags — это флаги, которые будут передаваться только компилятору C.
  • cpp.сxxFlags — это флаги, которые будут передаваться только компилятору C++.
  • cpp.staticLibraries — это список библиотек с которыми необходимо линковать приложение. Отмечу, что cpp.dynamicLibraries не поддерживаются в данных компиляторах (как я знаю), поэтому имеет смысл использовать только cpp.staticLibraries.
  • cpp.assemblerFlags — эти флаги будут переданы только ассемблеру.

Для задания файлов скриптов для линковщика имеется специальный тег «linkerscript», который и необходимо использовать, например:


        Group {
            name: "Linker Scripts"
            fileTags: ["linkerscript"]
            files: ["cfg3soim.xcl", "cfgcan128.xcl"]
        }

Примечание: Причина в том, что для разных компиляторов имеются различные варианты именования этих файлов. Для того же GCC это могуть быть файлы с расширениями *.ld, *.x, *.xn, *.xbn и пр. (что уже говорить о других компиляторах…). Поэтому решено было не заморачиваться с тегированием всех возможных расширений файлов для конкретных компиляторов, а просто использовать тег «linkerscript» по назначению и ситуации.

Чтобы посмотреть как это все работает, QBS предоставляет набор простейших примеров, которые только «дрыгают» ножкой и мигают светодиодом.

Что с отладкой

К сожалению, ситуация с отладкой плачевная. Продукты (IDE) IAR EW и KEIL используют свои отладчики, но, т.к. эти продукты являются проприетарными, то раздобыть где-то описание работы протоколов этих отладчиков не представляется возможным. Единственный вариант — это попытаться выполнить реверс-инжиниринг плагинов для Eclipse (например, IAR EW предоставляет эти плагины), но для этого необходима серьезная мотивация.

Но могу немного обрадовать, если скажу, что для архитектуры ARM можно использовать отладчик GDB. По крайней мере у меня это работало для IAR EW (но вот, с KEIL что-то не вышло, возможно там надо указывать какие-то дополнительные флаги линковщику).

Что дальше

Здесь я немного спойлерну, скажу что в следующих версиях (не знаю в каких именно), должны добавиться архитектуры STM8 и MSP430, а также в QBS будут реализованы генераторы в нативные проекты IAR EW и KEIL (что даст возможность, например, отлаживать проекты).

На этой ноте я заканчиваю свое повествование, всем спасибо, кто уделит внимание этому обзору.

Структура проектирования и разработки кроссплатформенных приложений

  • Дизайн
  • Развитие
  • Развернуть
  • Товар

    • Товар
      • Инструменты дизайна
      • Инструменты разработки
      • Рамка
      • Поддерживаемые платформы и языки
      • Особенности
      • Расширение в Qt Marketplace
    • Отраслевые решения
      • Автомобильная промышленность
      • Промышленная автоматизация
      • Бытовая электроника
      • Медицинский
    • Примеры использования платформы

      • Встроенные устройства
      • Микроконтроллеры (MCU)
      • Интернет вещей
      • Настольное приложение
      • Несколько экранов
      • Мобильные устройства
  • Почему Qt?

    • Почему Qt
      • Обзор
      • Истории успеха
      • Компания
      • Инвесторы
      • Карьера

.

Начало работы с Qt | Qt 5.15

Установка Qt

Вы можете установить Qt Framework и инструменты с помощью интерактивного или автономного установщика или путем сборки исходных пакетов самостоятельно.

Установщики позволяют загружать и устанавливать следующие компоненты:

  • Библиотеки Qt, предварительно созданные для конкретной платформы разработки (операционная система и компилятор)
  • Интегрированная среда разработки (IDE) Qt Creator
  • Справочная документация и примеры
  • Qt в виде исходного кода (требуется, только если вы хотите самостоятельно собрать фреймворк и инструменты)
  • Дополнительные компоненты, актуальные для разных платформ

Онлайн-установка

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

Онлайн-установщик доступен на странице загрузок Qt.

Автономная установка

Автономный установщик — это единый пакет, который содержит все Qt и надстройки, относящиеся к целевой платформе. Пользователи с коммерческой лицензией могут либо войти в систему со своей учетной записью Qt, либо со своим лицензионным ключом Qt в процессе установки.Лицензионный ключ доступен на веб-портале Qt Account.

Автономный установщик доступен здесь.

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

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

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

Следующее видео на YouTube дает полное представление о процессе установки:

Обновление или удаление Qt

После установки Qt вы можете использовать Утилиту обслуживания под для добавления компонентов, а также для обновления или удаления установленных компонентов.

Требования к платформе

Конкретные требования и инструкции по разработке приложений на различных платформах описаны на страницах платформ.

Для получения дополнительной информации посетите страницу поддерживаемых платформ.

Создайте свои первые приложения

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

Qt Widgets предоставляет библиотеку элементов пользовательского интерфейса, которые позволяют создавать классические пользовательские интерфейсы в стиле рабочего стола. Qt Quick — это библиотека, предоставляющая типы и функции для создания современных, гибких, анимированных пользовательских интерфейсов.

Для более подробного изучения различных аспектов разработки приложений с помощью Qt 5 см. QML Book. Он ориентирован на Qt Quick, но также предоставляет информацию, необходимую для использования QML вместе с C ++.

Изучите Qt

Мы приглашаем вас изучить остальную часть Qt. Мы подготовили обзоры, которые помогут вам решить, какие API использовать, а наши примеры демонстрируют, как их использовать.

Чтобы просмотреть список всех примеров Qt, посетите страницу Список примеров Qt.

Настройка проектов

Разработка с помощью Qt Creator

Справочная документация

Яркий и активный сайт сообщества Qt, http: // qt.io содержит вики, форум, а также дополнительные учебные руководства и презентации.

.

Получить Qt — Загрузить сейчас

  • Дизайн
  • Развитие
  • Развернуть
  • Товар

    • Товар
      • Инструменты дизайна
      • Инструменты разработки
      • Рамка
      • Поддерживаемые платформы и языки
      • Особенности
      • Расширение в Qt Marketplace
    • Отраслевые решения
      • Автомобильная промышленность
      • Промышленная автоматизация
      • Бытовая электроника
      • Медицинский
    • Примеры использования платформы

      • Встроенные устройства
      • Микроконтроллеры (MCU)
      • Интернет вещей
      • Настольное приложение
      • Несколько экранов
      • Мобильные устройства
  • Почему Qt?

    • Почему Qt
      • Обзор
      • Истории успеха
      • Компания
      • Инвесторы
      • Карьера
  • Ресурсы

    • Услуги
      • Профессиональные услуги
      • Консультации
      • Обучение
      • Поддержка
    • Другие ресурсы
      • Ресурсный центр
      • Вебинары

.

Среда разработки | Qt 5.14.2 для создания устройств

Среда разработки Qt

Пакет разработки, который вы получаете с программным стеком Boot to Qt, состоит из:

  • Библиотеки разработки Qt и основные инструменты.
  • Встроенная среда разработки вокруг Qt Creator IDE.
  • Дополнительные встроенные библиотеки и дополнительные компоненты.

О библиотеках разработки Qt

Qt — это полноценная среда разработки, предназначенная для упрощения создания приложений и пользовательских интерфейсов для настольных, встроенных и мобильных платформ.С Qt вы можете эффективно повторно использовать код для нацеливания на несколько платформ с одной базой кода. Модульная библиотека классов C ++ и инструменты разработки позволяют разработчикам создавать приложения для одной платформы, а также легко создавать и развертывать их на других платформах.

Библиотеки Qt предоставляют высокоуровневые API-интерфейсы для большого разнообразия функций, не связанных с графическим интерфейсом, и связанных с графическим интерфейсом. Для создания пользовательского интерфейса Qt предоставляет несколько подходов: традиционный C ++, декларативный дизайн пользовательского интерфейса с помощью Qt Quick или HTML5 / гибридные пользовательские интерфейсы с модулем Qt WebEngine.

Обзор библиотек Qt см. В справочной документации Qt.

Среда разработки Qt Creator IDE

Среда разработки построена на основе Qt Creator IDE. Qt Creator работает на всех настольных платформах, но встроенная среда разработки в настоящее время поддерживается только на 64-битных настольных компьютерах Linux и Windows.

Развертывание устройства может быть выполнено непосредственно из Qt Creator IDE на устройство, подключенное через USB или локальную сеть. Qt Creator IDE предварительно настроен для устройств, на которых выполняется загрузка в Qt, но также может быть настроен вручную для сборки и развертывания на пользовательских встроенных инструментальных цепочках и устройствах.

Дополнительные встроенные библиотеки и дополнительные компоненты

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

  • Qt Virtual Keyboard — полное решение для виртуальной клавиатуры с предсказанием слов и поддержкой нескольких языков.
  • Qt Quick Controls 2 — предоставляет набор элементов управления для создания полных пользовательских интерфейсов в Qt Quick.
  • Qt Quick Compiler — включает компиляцию.qml в двоичные файлы приложения, что улучшает время загрузки и безопасность ресурсов кода.
  • Qt Charts — компоненты пользовательского интерфейса для отображения визуально приятных диаграмм, управляемых статическими или динамическими моделями данных.
  • Qt Data Visualization — компоненты пользовательского интерфейса для создания потрясающих трехмерных визуализаций данных.
  • Qt Quick 2D Renderer — включает пользовательские интерфейсы Qt Quick на устройствах без графического процессора.
  • Qt Device Utilities — обеспечивает легкий доступ к различным настройкам встроенного устройства.

Доступно для определенных лицензий Qt.
Узнать больше.

.

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

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