Не так давно команда разработчиков Qt представила новую систему сборки — QBS. Разумеется, основной реакцией было «Да чем вас QMAKE не устраивал», «Просто адаптируйте CMAKE», «Ещё одна система сборки [xkcd, стандарты]». Обещанные преимущества новой системы: гибкость, понятный синтаксис для всех разработчиков (QML — javascript-подобный декларативный язык), скорость билдов (чистых и инкрементальных), а также лёгкая расширяемость.
Всё это мы где-то уже слышали, поэтому в данной статье мы попытаемся разобраться, как разработчики пришли к этой системе, рассмотрим простейшие примеры, изучим основные конструкции и посмотрим, какая поддержка на уровне IDE присутствует на настоящий момент.
Буквально на днях вышел QtCreator 2.5.0, и в нем появился плагин TODO. Но этот плагин поддерживает комментарии вида: <KEYWORD>: <some text>, а я везде использую doxygen комментарии: @<KEYWORD> <SOME_TEXT>. Поэтому я решил доработать плагин, так чтобы он мог поддерживать комментарии обоих видов.
Как известно, с использованием фреймворка Qt написано немало программ, причём отечественных среди них в последнее время становится всё больше. Итак, что же было написано в России с использованием этого фреймворка?
Kaspersky Internet Security 2012 – решение для обеспечения оптимального уровня безопасности. Инновационная гибридная защита мгновенно устраняет вредоносные программы, спам и другие интернет-угрозы, экономя ресурсы компьютера за счет комбинации облачных и антивирусных технологий.
В папке программы обнаружил следующие модули: qtcore, qtdeclarative, qtgui, qtnetwork, qtscript, qtsql, qtwebkit.
2ГИС – бесплатный электронный справочник организаций с картой города. 11 550 000 пользователей ПК в более чем 150 городах России и Украины регулярно используют 2ГИС в личных целях и для решения бизнес-задач.
Пруфлинк: «Оффлайновая версия 2ГИС разработана с использованием фреймворка Qt 4.8 и имеет нативный интерфейс, созданный в соответствии с Apple Human Interface Guidelines».
Немногие знают, что в последних версиях QtCreator'а есть поддержка QML Live Preview — возможности править код и сразу же видеть изменения на уже запущенной программе, причем как на десктопе/эмуляторе, так и на реальном устройстве.
Дико удобная вещь, позволяет экономить тонну времени на этапе разработки/правки UI.
Всё это, вместе с другими плюшками для дебаггинга QML работает из коробки на версиях QtCreator > 2.3. Для Qt версии 4.8 отладка QML включена по-умолчанию, для 4.7 необходимы легкие телодвижения в виде нажатия на одну кнопочку.
Небольшая демонстрация того, как это работает на примере Nokia N950:
Тема сегодняшнего эпизода серии вебинаров по QML и Qt Quick — «Списки. Модели и представления».
На этот раз автор вебинара Кирилл Кринкин рассказывает про концепцию Model-View-Controller и посвящает практически весь вебинар работе с моделями и представлениями. Посмотрев видео, вы узнаете, для чего используются статические и динамические модели и как они устроены в Qt Quick, как использовать делегаты, чтобы отображать элементы модели данных в элементах списка или других визуальных контейнерах.
Очередной эпизод серии вебинаров по QML и QtQuick посвящен обработке событий мыши и клавиатуры.
Первая часть вебинара отводится рассказу про невизуальный элемент MouseArea, определяющий участки экрана, в которых события мыши приводят к вызову обработчиков. Ведущий Кирилл Кринкин показывает два способа обработки событий мыши — с помощью связывания свойств (property binding) и с помощью обработчиков сигналов (signal handlers), а также объясняет разницу между этими способами.
Во второй части видео рассказывается про два типа ввода с клавиатуры: текстовый (когда часть специальных клавиш обрабатываются в runtime и события которых до обработчиков не доходят) и «сырой» (когда все клавиши вызывают обработчики). После вводной следует объёмная практическая часть.