Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Qt应用程序的默认鼠标图标_Html_Qt_Mouse - Fatal编程技术网

Html Qt应用程序的默认鼠标图标

Html Qt应用程序的默认鼠标图标,html,qt,mouse,Html,Qt,Mouse,如何在Qt应用程序中设置默认系统鼠标图标 据我所知,Qt有一组特殊的光标图标(与操作系统或光标主题附带的光标图标不同) 。。。 测试鼠标光标 ... 以手动鼠标图标为例: 默认手动光标设置在操作系统级别 Qt游标-与操作系统游标不同 我想使用在操作系统级别设置的鼠标图标主题,而不是使用Qt光标主题 ... <button style="cursor: pointer;">Test mouse cursor</button> ... 如何执行此

如何在Qt应用程序中设置默认系统鼠标图标

据我所知,Qt有一组特殊的光标图标(与操作系统或光标主题附带的光标图标不同)

。。。
测试鼠标光标
...
以手动鼠标图标为例:

默认手动光标设置在操作系统级别


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游标主题。