For now I'm doing this: class MouseTrackableWindow : public QQuickWindow { Q_OBJECT public: void mouseMoveEvent(QMouseEvent *event) override { QQuickWindow::mouseMoveEvent(event); emit mouseMove(event->windowPos()); }
signals: void mouseMove(QPointF mouse); }; ... qmlRegisterType<MouseTrackableWindow>("foo.components", 1, 0, "MouseTrackableWindow"); ... import QtQuick 2.12 import foo.components 1.0 MouseTrackableWindow { title: qsTr("Hello World") onMouseMove: { console.log(mouse.x, mouse.y); } } And it's not all too bad, but if anyone can tell me of a more dogmatic QtQuick based approach, please let me know. I'm not sure missing whatever is left in QQuickWindowQmlImpl <https://github.com/qt/qtdeclarative/blob/5.12/src/quick/items/qquickwindowmodule_p.h> is going to wind up giving me problems later. Subclassing that means including private headers etc. so I'm not to keen on going that route. /René On Thu, 21 Mar 2019 at 12:50 René Hansen <ren...@gmail.com> wrote: > Hi all, > > > I want to track mouse movement within my entire application window, > because I need to show/hide/move items around where my cursor is at certain > times. (Think e.g. custom cursor) > > I can do it easily by filling the entire window with a *MouseArea* and > handle *onPositionChanged*. The problem is that any mouse sensitive > inputs underneath, then get's blocked by the overlaying *MouseArea*. E.g. > a *TextField* that is usually highlighted on hover and clickable, no > longer receives any mouse events. > > Is there any straightforward solution to this? > > I know *QQuickWindow* has a *mouseMoveEvent*, but that doesn't seem to be > exposed in QML and if I can avoid subclassing and exposing a custom class, > I'd rather do that. > > > Cheers, > > René Hansen >
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest