mafulechka
mafulechka18 июня 2020 г. 5:50

Представляем Flow Mode в Qt Design Studio 1.5 - Часть 1

В версии 1.5 Qt Design Studio вы можете попробовать функционал flow mode . В первой части статьи, состоящего из нескольких частей, будет рассказано о базовом использовании flow mode и о том, как начать работу. В конце статьи рассмотрим запланированные расширенные функции, которые появятся в следующей версии Qt Design Studio.


Что такое Flow Mode?

Поток (flow) может быть описан, как схематичное представление экранов в вашем приложении, чем-то похожее на узел графа, используемый для визуального программирования, хотя специально реализованное для задачи создания потоков пользовательского интерфейса. Сама блок-схема показывает каждый экран и его связь с другими экранами, а также возможные пути пользователя через приложение. Традиционно дизайнеры создавали эти платы, как макет для представления концепций потока приложения. С появлением таких инструментов, как Sketch, появилась возможность запуска созданных дизайнером блок-схем в виде интерактивного прототипа, по которому можно переходить, чтобы имитировать пользовательский опыт приложения. Тем не менее, фактическая логика для этого потока все равно должна быть заново реализована разработчиками.

Потоки в Design Studio предоставляют собой более полное решение проблемы. Они позволяют дизайнеру быстро создавать прототипы полного приложения путем моделирования потока в привычном стиле визуального программирования, основанного на nodegraph-esque. Код QML создается в фоновом режиме, что позволяет разработчику расширить функциональность своего потока за пределы, присущие более традиционным инструментам проектирования. Конечными результатами являются как прототип с высокой точностью, так и разработчики функционального кода, которые можно использовать в качестве основы для рабочей версии приложения.

Создание потока в Qt Design Studio. Основы.

Настройка вашего первого потока (Flow)

Вы можете создать поток либо в существующем проекте, либо в новом проекте. Чтобы начать использовать режим потока, вам нужно быть в проекте, а затем добавить следующие элементы через меню «Файл»/«Новый файл» (file menu/New File) или «Мастер проектов» (Project Wizard).

Создать Flow View

Первый файл, который вам нужен, это новый тип QML с именем Flow View. Это холст, с которым вы будете соединять все экраны вашего интерфейса. Этот файл можно добавить с помощью мастеров (wizards) после создания проекта, а затем перейти к добавлению нового файла, новые QML Types, используемые в потоках, можно найти в разделе Qt Quick Files.

Создать Flow Items (элементы потока)

Далее вам нужен новый тип экрана, который может использоваться flow mode - Flow Item. Вы также можете создать их с помощью мастеров (wizards). Эти файлы представляют собой тип файла UI.QML, который можно вставить в файл Flow View.

Создание содержимого экрана (Screen content)

Добавление содержимого к Flow Items работает так же, как и при проектировании любого обычного экрана в Qt Design Studio, поскольку эти файлы Flow Item являются просто типом файла UI. Файл QML, значит вы можете использовать их точно так же, как и обычный файл интерфейса пользователя. Они могут содержать подкомпоненты, быстрые элементы управления, анимацию и все остальное, что вы можете добавить в обычный файл пользовательского интерфейса (UI file). Единственное реальное отличие состоит в том, что эти файлы можно увидеть в Flow View, поэтому при просмотре библиотеки QML эти специальные компоненты являются единственными элементами, видимыми на панели «Мои компоненты QML» (My QML Components).

Добавление ваших файлов в flow view (представление потока)

Перетащите Flow Item из библиотеки в Flow View, после чего у вас появится первый экран в потоке, разумеется, вам нужно как минимум два экрана, чтобы заставить работать поток, поэтому после того, как у вас появится второй экран, вы можете начать использовать Flow View правильно.

Добавление action areas (областей действия)

Action areas (области действия) могут работать несколькими способами. Во-первых, это действовать как простая интерактивная область, которая инициирует переход - это самый простой способ использования flow editor (редактора потоков) для создания прототипов. Другое использование областей действия - это то, что вы можете подключить любой сигнал от любого компонента на вашем экране потока или от любого его подкомпонента, например, кнопку на вашем экране, которая имеет сигнал onPressed. В этой первой части блога будет рассмотрен простой вариант использования, а затем во второй части уже более сложный вариант использования.

Подключение экранов (Connecting Screens)

Если у вас есть Action Area (область действия), вы можете использовать ее для подключения к другому экрану, либо дважды щелкнув Action Area и затем перетащив линию подключения на другой экран и отпустив ее, либо с помощью контекстного меню для Flow View, где все соответствующие элементы управления могут быть найдены. После того, как вы соединили экраны вместе, у вас есть первый поток, теперь вы можете запустить Live Preview и нажать на кнопку, покрывающую Action Area, которая не будет видна в Live Preview, чтобы увидеть полезный предварительный просмотр первого перехода.

Добавление эффектов (Adding Effects)

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

Редактирование Эффектов (Editing Effects)

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

Возвращение (Go Back)

Одной из особенностей функционала flow mode в Qt Design Studio является добавление кнопки «Назад» (back button). Во многих случаях в потоке будет много-много взаимосвязей с вашими экранами, традиционно вам придется создавать явные линии связи «к» и «с» каждого потенциально подключенного экрана, что приводит к запутанной и грязной диаграмме. С Qt Design Studio вы можете просто установить действие как «Возвращение» (“Go Back”), и оно всегда вернет вас к предыдущему экрану.

Предварительный просмотр в Live Preview

Как и на всех экранах в Qt Design Studio, вы можете просматривать свои изменения в реальном времени с помощью Live Preview, просто запустите предварительный просмотр и продолжайте работу над потоком, ваши изменения будут обновляться в реальном времени, и вы можете протестировать их непосредственно в окне Live Preview.

Внешний вид (Appearance)

Свойства Flow View позволяют настроить внешний вид всех элементов в потоке, линий подключения, Action Areas (область действия) и дополнительных узлов, таких как «Решения» (Decisions) и «Подстановочные знаки» (Wildcards). Вы можете изменить общие настройки для всех элементов или выбрать отдельную линию, узел или action area и изменить внешний вид только этого элемента (включая цвет, толщину линии, пунктирные или сплошные линии и даже кривую соединений), позволяя вам добавить дополнительную семантику к дизайну самой блок-схемы.

Решения (Decisions)

Частью любого сложного пользовательского интерфейса является условная логика, которую он использует для представления своего состояния пользователям или для сбора и обработки различных источников данных, взаимодействия с пользователем с различных входов, таких как физические кнопки и элементы управления, показания датчиков из массивов оборудования или общие значения из поддерживаемых/сервисных API. С помощью Decision Nodes (узлов принятия решений) вы можете смоделировать любое из этих условий, предоставив пользователю список опций, позволяющий создавать прототипы сложных взаимодействий до того, как у вас будут какие-либо производственные необходимые физические элементы управления, данные бэкенда или сенсора. В будущем вы сможете связать эти решения с фактическими поддерживаемыми значениями или списками событий, перенеся ваши усилия по созданию прототипов в ранние состояния реального производственного кода.

Подходя к части 2

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

Wildcards

Разработчики заметили, что другой распространенной функциональностью реальных пользовательских интерфейсов, которая не была хорошо обработана в традиционных инструментах проектирования потоков, были экраны, которые могут появляться из любого места или в любое время на основе условного события. Возьмите, например, push-уведомления на смартфонах или на экранах входящих вызовов в HMI вашего автомобиля. С помощью Wildcards вы можете моделировать экраны этого типа в своем потоке, используя реальные или смоделированные сигналы и условия, что позволяет вывести ваши концепции потока за пределы этого традиционного барьера. Другой вариант использования, который разработчики планировали, заключался во включении белого и черного списков для этих подстановочных событий. Чтобы продолжить с одного из наших примеров здесь, с входящим вызовом HMI нашего автомобиля, скажем, у нас есть экран предупреждения для двигателя где-то в нашем потоке, который также использует подстановочный знак и может появиться на любом экране в любое время, если он получил сигнал. Теперь добавим этот экран предупреждения двигателя в черный список экрана входящих вызовов. Это означает, что теперь наш экран входящего вызова может появляться на любом экране, кроме экрана предупреждения двигателя.

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

Подключение сигналов от компонентов

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

Интегрирующие состояния (Integrating States)

Еще одно соображение, которое разработчики должны были спроектировать - это существование состояний в Qt Design Studio, существующей и мощной части рабочего процесса, которая позволяет вам создавать состояния экранов вашего пользовательского интерфейса и отслеживать изменения между ними. С этими потоками вы можете не только переходить из любого состояния экрана в любое состояние другого экрана, но также использовать поток для перехода между состояниями одного экрана, смешивая мощь существующих функций QML с новым режимом потока.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
г
  • ги
  • 23 апреля 2024 г. 15:51

C++ - Тест 005. Структуры и Классы

  • Результат:41баллов,
  • Очки рейтинга-8
l
  • laei
  • 23 апреля 2024 г. 9:19

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:10баллов,
  • Очки рейтинга-10
l
  • laei
  • 23 апреля 2024 г. 9:17

C++ - Тест 003. Условия и циклы

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
k
kmssr8 февраля 2024 г. 18:43
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий Кононенко5 февраля 2024 г. 1:50
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25 декабря 2023 г. 10:30
Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJo25 декабря 2023 г. 8:38
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
Gvozdik18 декабря 2023 г. 21:01
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
G
Gar22 апреля 2024 г. 5:46
Clipboard Как скопировать окно целиком в clipb?
DA
Dr Gangil Academics20 апреля 2024 г. 7:45
Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
a
a_vlasov14 апреля 2024 г. 6:41
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев
Павел Дорофеев14 апреля 2024 г. 2:35
QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
f
fastrex4 апреля 2024 г. 4:47
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

Следите за нами в социальных сетях