Рубрика «QML» - 9

Qt Coding Style по версии Qt
Привет, читатели!

Сейчас какой-то спец с многолетним опытом работы с Qt подумал: «Что за фигня? Хабр — для вещей покруче!». Но ведь даже спецам с многолетним опытом иногда надо читать вот такие статьи про простые вещи, ведь это — важно. Код — это одна из самых важных составляющих программирования. А наша задача — держать его в чистоте. Эта статья посвящена всем Qt программистам которые стремятся к идеалу.

Конечно есть статья на Qt Project — Qt Coding Style. Только вот там материала ценного меньше,
Читать полностью »

Этот пост является продолжением данной (в переводе) статьи.

В предыдущем посте мы рассмотрели, как движок QML загружает файлы. Напомню, что сначала QML-файлы разбираются парсером, затем компилируются в промежуточный байт-код и наконец следуя инструкция байт-кода, для каждого эемента в каждом QML-файле создаётся C++ объект. Например, мы видели, что когда QML файл содержит элемент Text, то движок создает экземпляр C++ класса QQuickText.

На самом деле, загрузка файлов — это почти всё, чем занимается движок QML. После загрузки, он перестаёт вмешиваться в процесс работы приложения. Обработка событий и отрисовка элементов в Runtime полностью ложится на плечи C++. Например, элемент TextInput обрабатывает события вроде QQuickTextInput::keyPressEvent() и обновления QQuickTextInput::updatePaintNode(), без участия движка QML.

Но существуют две важные вещи, на которые движок QML всё же влияет во время выполнения: Связанные обработчики сигналов (Bound signal handlers) и обновление привязок свойств (property binding). Связанные обработчики сигналов — это такие вещи, как onClicked обработчик для MouseArea. Сегодня же мы рассмотрим привязки (Bindings).
Читать полностью »

в 17:12, , рубрики: maemo, MeeGo, QML, qt, Qt Software

За последние месяцев 20 я написал немало постов о Qt5, QMS Scene Graph, шейдерах и многом другом. Сейчас, когда бета-версия Qt5 уже на подходе, я думаю что пора показать очередное технологическое демо. Оно называется 'Cinematic Experience' и выглядит следующим образом:

Читать полностью »

В нашей серии вебинаров по разработке на Qt Quick и QML мы уже довольно много говорили о разработке приложений в целом. Сегодня же мы расскажем про Qt Mobility — набор API и фреймворков, ориентированный на разработку приложений для мобильных платформ.

С помощью Qt Mobility можно задействовать такие технологии и возможности, свойственные в основном мобильным устройствам, как геопозиционирование, менеджмент и мониторинг состояния сетевых соединений, доступ к камерам и микрофону, работа с мультимедийными возможностями мобильного устройства, получение информации о статусе мобильного девайса (заряд аккумулятора и режим питания, доступность сети, текущий звуковой профиль и т.д.). Также среди возможностей Qt Mobility можно выделить работу с контактами, сообщениями электронной почты и SMS, календарями, галереями и другими стандартными мобильными приложениями. Все эти возможности Qt Mobility доступны в QML через плагины QtMobility QML.

Неотъемлемой частью современных смартфонов являются сенсоры, и упускать при разработке некоторых мобильных приложений возможности, доступные с их помощью — практически преступление. В вебинаре мы расскажем про работу с акселерометрами, гироскопами, магнитометрами (в народе — «компасами») и сенсорами освещенности.

Читать полностью »

Привет, {{username}}!

«Жизнь» Джеймса Конвея на Qt

Сегодня я хочу показать, как реализовать всеми любимую игру Game Of Life Джона Конвея на Qt. Писать будем на виджетах. На примере этого проекта я покажу как работать с QPainter, несколькими классами из core, лэйаутами и вообще с графикой в Qt Widgets. Всем кому интересна эта игра или работа с графикой на Qt, прошу читать дальше. Вообще, статья ориентирована на новичков, но и продвинутым ребятам тоже будет что прочитать:).

Кому лень — вот тут лежит исходничег проекта. Можно собирать сразу, зависимости на core, gui.
Читать полностью »

Привет, {{username}}!

«Жизнь» Джона Конвея на Qt

Сегодня я хочу показать, как реализовать всеми любимую игру Game Of Life Джона Конвея на Qt. Писать будем на виджетах. На примере этого проекта я покажу как работать с QPainter, несколькими классами из core, лэйаутами и вообще с графикой в Qt Widgets. Всем кому интересна эта игра или работа с графикой на Qt, прошу читать дальше. Вообще, статья ориентирована на новичков, но и продвинутым ребятам тоже будет что прочитать:).

Кому лень — вот тут лежит исходничег проекта. Можно собирать сразу, зависимости на core, gui.
Читать полностью »

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

Посмотрев данный вебинар вы узнаете, как устроено декларативное окружение Qt и как оно связано с языком QML, а также поймете, что представляет из себя программа на QML с точки зрения C++. В первых вебинарах по разработке на QML и Qt Quick мы уже частично касались этого вопроса, но сейчас разберем его подробнее, вернувшись к элементарной программе «Hello, World!» и рассмотрев её с точки зрения C++.

Также в вебинаре мы рассмотрим возможности и порядок создания нового элемента, научимся экспортировать свойства из C++ в QML, и разберем, как создавать пользовательские сигналы и слоты.

Читать полностью »

В сегодняшнем вебинаре про технологии QtQuick и язык QML мы поговорим про пользовательские элементы и использование ресурсов.

Посмотрев текущее видео, вы научитесь создавать пользовательские элементы и компоненты, узнаете, какая между ними разница и в каких случаях что стоит использовать. Для новых компонентов вы научитесь определять пользовательские свойства (Property <type> <name> [: <value>]) и сигналы (signal <name> [( <type> <value>, …)]).

В вебинаре будет рассказано, какие есть соглашения об именах и как использовать сигналы на уровне QML, как пользоваться модулями для определения новых элементов или экспорта существующих элементов на более высокий уровень, а также о контроле версий модулей и элементов. В заключении вебинара речь пойдет о возможности задания пространства имен (aliasing), в которое мы загружаем тот или иной компонент или модуль, и, собственно, об использовании ресурсов в приложениях на QML.

Читать полностью »

В сегодняшнем эпизоде серии вебинаров, посвященной разработке на QML и QtQuick, мы расскажем про страничную организацию пользовательского интерфейса. Таким образом, мы вплотную подошли к этапу, когда вы сами сможете разрабатывать полноценные приложения.

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

Следует отметить, что существует два типа приложений:

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

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

Читать полностью »

Наша серия вебинаров, посвященная QML и QtQuick, продолжается, и сегодня мы вам расскажем про анимацию. Без анимации, то есть плавных переходов и поворотов, сейчас немыслим ни один качественный интерфейс, а значит упускать эти возможности QML попросту нельзя.

Анимации используются для создания визуальных эффектов и применимы к любому визуальному элементу. Анимации могут применяться для чисел и свойств, их можно использовать для создания пауз и задержек. Существует множество типов анимации (NumberAnimation для числовой анимации, ColorAnimation для переходов между цветами, RotationAnimation для поворотов, SpringAnimation и т.д.)

Для возможности задать, каким образом при анимации будет интерполироваться переход от начального значения к конечному, можно использовать переходные кривые (Easing curves). С их помощью можно анимировать элементы, например, по экспоненциальному закону (easing.type: «OutExpo»).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js