由于某种原因,我想将系统光标隐藏10秒,但我发现了
cursor.setShape(Qt.BlankCursor)
只能隐藏与QWidget关联的鼠标光标,而不能在系统范围内隐藏,即当鼠标光标悬停在QWidget上时,它是不可见的,否则它是可见的,那么有什么方法可以在系统范围隐藏系统光标吗?
win32系统调用ShowCursor仅适用于每个窗口。您可以从ctypes或pywin32的win32api访问它。但显然,光标绘制是由显示驱动程序控制的,只能受到特定窗口的影响。不能强制其他窗口隐藏其光标。两种选择:
- 在你的窗口上使用ShowCursor(False),对于显示背景,创建一个根窗口应用程序,你从你的GUI应用程序中生成,它隐藏光标;你的应用程序会在10秒后退出,但如果用户将鼠标移到其他应用程序窗口上,他们会再次看到光标
- 使您的应用程序成为根窗口应用程序;然后在视图中,ShowCursor(False)将使光标在屏幕上除了系统工具栏之外的任何地方都消失(这是一件好事)
无论如何,我认为这不是一个好主意;如果你的应用程序在鼠标隐藏时崩溃了怎么办?然后用户就不能轻易地使用他们的桌面了。这绝对是不允许的好理由。
最好的方法是想出一个不同的解决方案来解决导致您尝试隐藏光标的问题。