Я собираюсь разработать систему на сенсорном экране. Я пытаюсь использовать Qwidget. Но я нашел это в документах QT.
Он сказал: «Qt Widgets часто требуют курсор мыши для хорошего взаимодействия, тогда как Qt Quick предоставляет только примитивные строительные блоки которые были разработаны с учетом сенсорного взаимодействия. »
Что это означает? Чем отличается курсор мыши от примитивных строительных блоков?
Приложение на основе Qt Widgets может корректно работать с сенсорным экраном. Я сделал много приложений для сенсорных экранов, написанных на Qt Widgets, и они работают хорошо.
Проблема в том, что некоторые виджеты настолько малы, что их трудно использовать на сенсорном экране, например QSpinBox
, QDateTimeEdit
,
Некоторые виджеты трудно использовать, например, QComboBox
не работает, если выпадающие элементы не помещаются на экран. Та же проблема с QScrollArea
и все компоненты, использующие его, из-за полос прокрутки.
Вы можете все еще использовать Таблицы стилей изменить все компоненты и сделать их более удобными для сенсорного экрана.
Представьте себе этот диалог, используя Qt Widgets. Также невозможно использовать его на емкостном сенсорном экране пальцами. Для хорошего взаимодействия требуется курсор мыши.
С другой стороны, QML — это сенсорный экран. Есть несколько компонентов в Qt Quick Controls но вы можете легко определить свои собственные компоненты, используя примитивные строительные блоки, такие как Rectangle. Есть некоторый встроенный дизайнер, но он никогда не работал для меня должным образом с более сложными проектами. Я когда-либо заканчивал ручным кодированием QML. Для меня QML сложнее в освоении, и окончательный код должен быть полон хаков, чтобы достичь какой-то цели. Это мой личный взгляд.
Представьте себе этот сборщик времени, использующий QML. Это может быть реализовано просто, но некоторые текстовые элементы и прямоугольники самостоятельно (Используя только примитивные строительные блоки). Он также идеально подходит для сенсорного экрана. Реализовать этот компонент будет намного сложнее с использованием Qt Widgets, чем с использованием QML.
Других решений пока нет …