首页 > 解决方案 > 自定义 Qt 小部件中的一些光标形状很小

问题描述

我有一个应用程序,它使用一个继承自QGraphicsView其中的类,我将鼠标光标的形状设置为适合当前位置和模式。

基本上,我有一个看起来有点像的方法

Qt::CursorShape MyClass::cursor_shape()
{
   if(<some condition>) return Qt::PointingHandCursor;
   if(<some other condition>) return Qt::ClosedHandCursor;
   ...
}

在代码中的某些位置,主要是鼠标事件,我称之为

setCursor(cursor_shape());

到目前为止,这对一个问题是安全的:
对于两个光标形状,特别Qt::ClosedHandCursor是 ,Qt::OpenHandCursor光标始终具有系统可能的最小尺寸。
如果用户已将系统光标大小(在 Windows 中,系统设置“鼠标指针 - 更改指针大小”)设置为最小值以外的其他值,则此大小将用于所有其他光标形状,但不适用于这两个形状。

我没有任何更改光标的代码,尤其是没有手动设置光标大小的代码。
有谁知道为什么会这样以及我如何改变它?

从通过位图读取QCursor构造函数时得到的信息来看,光标大小完全来自系统,甚至不能手动更改?

(如果相关,我使用 Qt5。)

标签: c++qt

解决方案


推荐阅读