Чем отличается QWidget от Qml при обработке сенсорного экрана?

Я собираюсь разработать систему на сенсорном экране. Я пытаюсь использовать Qwidget. Но я нашел это в документах QT.

Он сказал: «Qt Widgets часто требуют курсор мыши для хорошего взаимодействия, тогда как Qt Quick предоставляет только примитивные строительные блоки которые были разработаны с учетом сенсорного взаимодействия. »

Что это означает? Чем отличается курсор мыши от примитивных строительных блоков?

0

Решение

Приложение на основе Qt Widgets может корректно работать с сенсорным экраном. Я сделал много приложений для сенсорных экранов, написанных на Qt Widgets, и они работают хорошо.

Проблема в том, что некоторые виджеты настолько малы, что их трудно использовать на сенсорном экране, например QSpinBox, QDateTimeEdit,
Некоторые виджеты трудно использовать, например, QComboBox не работает, если выпадающие элементы не помещаются на экран. Та же проблема с QScrollArea и все компоненты, использующие его, из-за полос прокрутки.
Вы можете все еще использовать Таблицы стилей изменить все компоненты и сделать их более удобными для сенсорного экрана.

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

введите описание изображения здесь

С другой стороны, QML — это сенсорный экран. Есть несколько компонентов в Qt Quick Controls но вы можете легко определить свои собственные компоненты, используя примитивные строительные блоки, такие как Rectangle. Есть некоторый встроенный дизайнер, но он никогда не работал для меня должным образом с более сложными проектами. Я когда-либо заканчивал ручным кодированием QML. Для меня QML сложнее в освоении, и окончательный код должен быть полон хаков, чтобы достичь какой-то цели. Это мой личный взгляд.

Представьте себе этот сборщик времени, использующий QML. Это может быть реализовано просто, но некоторые текстовые элементы и прямоугольники самостоятельно (Используя только примитивные строительные блоки). Он также идеально подходит для сенсорного экрана. Реализовать этот компонент будет намного сложнее с использованием Qt Widgets, чем с использованием QML.

введите описание изображения здесь

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]