如何在 QML 中隐藏光标

Posted

技术标签:

【中文标题】如何在 QML 中隐藏光标【英文标题】:How to hide cursor in QML 【发布时间】:2016-11-26 08:35:48 【问题描述】:

我想知道如何在 QML,QT 5.7 中隐藏光标。

我尝试使用

QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor));

app.setOverrideCursor( QCursor( Qt::BlankCursor ) );

但两者都不起作用。

/home/QTProjects/main.cpp:13: error: invalid use of incomplete type 'class QCursor'
     QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor));
                                                               ^

如果可能的话,我可以在 QML 中隐藏光标,而不是在 C++ 端。

【问题讨论】:

#include <QCursor> 这样您就可以在main.cpp 中使用您的第一个代码 【参考方案1】:

您可以使用禁用的覆盖MouseArea 来隐藏它:

  Button 
    onClicked: console.log("clicked")
  

  MouseArea 
    anchors.fill: parent
    enabled: false
    cursorShape: Qt.BlankCursor
  

只需将鼠标区域放在main.qml 的底部,它将对事件透明,但仍会覆盖光标形状。

【讨论】:

仅在我移动鼠标时有效,当应用程序在左上角启动时仍然可以看到它(Raspberry Pi)【参考方案2】:

你应该在 main.cpp 中包含 QCursor 并调用

QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor));

【讨论】:

以上是关于如何在 QML 中隐藏光标的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中隐藏菜单项

如何在 QML 中使用透明矩形隐藏图像?

如何使 QML 可滑动内容隐藏在可滑动边界之外?

如何使“真正透明”的窗口成为光标,最好是在纯 QML 上? (Qt 5.7)

如何在 Swing 应用程序中隐藏光标?

如何在 Win32 控制台中隐藏鼠标光标?