[Interest] Track global mouse position in QML

René Hansen renehh at gmail.com
Thu Mar 21 14:36:06 CET 2019

For now I'm doing this:

class MouseTrackableWindow : public QQuickWindow
  void mouseMoveEvent(QMouseEvent *event) override {
    emit mouseMove(event->windowPos());

  void mouseMove(QPointF mouse);


qmlRegisterType<MouseTrackableWindow>("foo.components", 1, 0,


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
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.


On Thu, 21 Mar 2019 at 12:50 René Hansen <renehh at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20190321/78ca7610/attachment.html>

More information about the Interest mailing list