Html Qt应用程序的默认鼠标图标
如何在Qt应用程序中设置默认系统鼠标图标 据我所知,Qt有一组特殊的光标图标(与操作系统或光标主题附带的光标图标不同)Html Qt应用程序的默认鼠标图标,html,qt,mouse,Html,Qt,Mouse,如何在Qt应用程序中设置默认系统鼠标图标 据我所知,Qt有一组特殊的光标图标(与操作系统或光标主题附带的光标图标不同) 。。。 测试鼠标光标 ... 以手动鼠标图标为例: 默认手动光标设置在操作系统级别 Qt游标-与操作系统游标不同 我想使用在操作系统级别设置的鼠标图标主题,而不是使用Qt光标主题 ... <button style="cursor: pointer;">Test mouse cursor</button> ... 如何执行此
。。。
测试鼠标光标
...
以手动鼠标图标为例:
默认手动光标设置在操作系统级别
Qt游标-与操作系统游标不同 我想使用在操作系统级别设置的鼠标图标主题,而不是使用Qt光标主题
...
<button style="cursor: pointer;">Test mouse cursor</button>
...
如何执行此操作?您可以使用
setOverrideCursor
更改整个应用程序中的光标。只需在主窗口或主窗口的构造函数中调用它:
qApp->setOverrideCursor(QCursor(Qt::PointingHandCursor));
但是
setOverrideCursor()
有一个缺点。正如文件所说:
将应用程序覆盖光标设置为光标
应用程序覆盖游标用于向用户显示应用程序处于特殊状态,例如在可能需要一些时间的操作期间
在调用restoreOverrideCursor()或另一个setOverrideCursor()之前,此光标将显示在所有应用程序的小部件中
应用程序游标存储在内部堆栈上。setOverrideCursor()将光标推到堆栈上,restoreOverrideCursor()将活动光标从堆栈中弹出。changeOverrideCursor()更改当前活动的应用程序覆盖光标
每个setOverrideCursor()最后都必须后跟相应的restoreOverrideCursor(),否则堆栈将永远不会清空
链接:
这意味着所有小部件都有这个光标,您不能更改它。所以我有下一个解决方案:
将光标设置到主窗口,它将是默认光标,但您可以更改所需每个小部件的光标,但主窗口的光标将是默认光标
例如:
this->setCursor(QCursor(Qt::PointingHandCursor));//it is default cursor
//qApp->setOverrideCursor(QCursor(Qt::PointingHandCursor));
QPixmap pix("path");
QCursor cur(pix);
ui->textEdit->viewport()->setCursor(cur);//when we hover the textEdit we get this pixmap as cursor.
您希望什么时候显示不同的鼠标光标?在某个小部件之上?在整个应用程序窗口上方?甚至在应用程序窗口之外?@Silicomancer在整个应用程序中。我想使用普通的手形图标(在操作系统级别配置),而不是来自Qt环境的图标。只是一个想法,以前从未使用过这个。。。你试过主窗口上的QWidget::setCursor()吗?@Silicomancer我想我不够清楚。设置光标不是问题,但光标主题是问题所在。请参阅编辑。@IonicăBizău因此,如果您想要另一个光标,那么您可以下载所需的光标(图片),并将其安装为pixmap,正如我在回答中所述。请参阅我的编辑:我试图稍微澄清一下。我想使用默认的游标主题而不是Qt游标主题。