【问题标题】:How to hide mouse cursor in Qt Application?如何在 Qt 应用程序中隐藏鼠标光标?
【发布时间】:2019-01-17 20:11:59
【问题描述】:

qApp->setOverrideCursor() 方法成功,如果我想隐藏鼠标光标,除了一个条件。如果我添加一个模态对话框,并且在显示时,如果光标超出对话框的边界,则会再次显示。你对这个问题有任何想法吗?

隐藏鼠标光标的解决方案如何无关紧要;无论是通过 Qt 还是在操作系统级别。我的操作系统是 Windows 7。

【问题讨论】:

  • 如果您能提供一个简单的 MCVE 来显示问题,那将会有所帮助。只是main.cpp,它会创建...我不知道,一个空的主窗口,然后打开一个对话框?
  • 我刚刚创建了一个主窗口并添加了一个 qpushbutton。单击按钮时,将显示模态对话框。就这样。如果对话框不是模态的,则鼠标按预期隐藏。顺便说一句,我已经解决了这个问题。解决方案是从 windows api 中包含“winuser.h”并调用 ShowCursor(false) 方法。
  • 太棒了。您可以将该解决方案写为答案,然后将其标记为已接受。

标签: qt modal-dialog cursor hide


【解决方案1】:

当鼠标光标离开您的窗口(或对话框窗口)时,您无法隐藏鼠标光标,因为它随后由您的操作系统的窗口管理器处理。一种解决方法是将鼠标限制在您的窗口/对话框中,因此它不能离开。您要么需要通过 MSDN 查找特定的 windows 功能来执行此操作,要么像在 Qt 论坛上的 kshegunov 的代码示例中那样执行它:https://forum.qt.io/topic/61832/restrict-mouse-cursor-movement/12

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 2017-06-07
    • 1970-01-01
    • 2017-04-05
    • 2013-09-16
    • 2019-02-06
    相关资源
    最近更新 更多