[QT Cursor] 自定义鼠标样式

QT 自定义鼠标样式


背景

项目中,需要使用绘图,在绘图时需要用到指定样式的鼠标。绘图采用QT Graphics View 框架。

实现

当处于绘图状态时,给QGraphicsView中的viewport()设置Cursor,代码示例:

    QPixmap cursor_pix = QPixmap(":/icons/src/res/edit-mouse.png");
    ui->draw_view->viewport()->setCursor(QCursor(cursor_pix, cursor_pix.width()*7/16, cursor_pix.height()*3/16));

QCursor的构造函数使用的是为QCursor(const QPixmap &pixmap, int hotX=-1, int hotY=-1);
pixmap:鼠标样式图。
hotX:鼠标热点X坐标,默认为pixmap.width()/2。
hotY:鼠标热点Y坐标,默认为pixmap.height()/2。
因此默认鼠标热点默认在鼠标图像中心,根据需要可以设置hotX与hotY值。在本人使用的鼠标图像中,热点需要设置在手指中心,所以为了让绘图时的点与手指中心对应,故而分别为设置为pixmap的7/16与3/16。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容