C++ API имеет QEvent
вместе с несколькими другими полученными из него классами (QMouseEvent
, QGestureEvent
и т. Д.). С другой стороны, QML имеет события. Однако я изо всех сил стараюсь найти элегантный способ непосредственного обработки событий C++ в QML.Обработка событий Qt C++ в контексте QML
Обычно то, что я сделать, это создать пользовательские QQuickWidget
(или аналогичные включая QQmlEngine
), переопределение QWidget::event(QEvent* event)
и при получении ++ события специфического C Я размножить его через сигналы в QML слоты с кодом QML загружаются через этот виджет. Это похоже на большую работу, и мне интересно, есть ли какая-то встроенная обработка событий QML для событий, происходящих из контекста C++.
В частности, меня интересует обработка QGestureEvent
s в QML, но я думаю, что то, что работает для этого типа событий, должно также работать для любого другого типа событий.
Вы пытались использовать [MultiPointTouchArea] (http://doc.qt.io/qt-5/qml-qtquick-multipointtoucharea.html)? Он имеет сигнал 'gestureStarted (жест GestureEvent), который может отвечать вашим потребностям. – dydil
Дело в том, что я хочу захватить события жестов, которые действительно происходят из контекста C++. Например, если я сопоставляю данные с устройства (к которому можно получить доступ только через средства С ++) к API-интерфейсу жестов Qt, а затем передать его в QML-часть приложения. Он не может быть удаленно подключен к контакту (например, жесты с использованием устройства Kinect). – rbaleksandar
«Это похоже на большую работу» - это буквально ** ничего ** по сравнению с объемом работы, которую потребуется для реализации обработки событий C++ для QML. – dtech