Qt 改变鼠标形状

Posted ybqjymy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 改变鼠标形状相关的知识,希望对你有一定的参考价值。

改变鼠标形状,在绘制坐标系的时候有用到,特此记下:

 1 this->setMouseTracking(true);      //设置为不按下鼠标键触发moveEvent
 2 void mouseMoveEvent(QMouseEvent* event)
 3 {
 4     QPoint mousepos = event()->pos();
 5 
 6     //在坐标(0 ~ width,0 ~ height)范围内改变鼠标形状
 7     if(mousepos.rx() > 0
 8        && mousepos.rx() < width
 9        && mousepos.ry() > 0
10        && mousepos.ry() < height)
11     {
12            this->setCursor(Qt::CrossCursor);
13     }
14     else
15     {
16         this->setCursor(Qt::ArrowCursor);      //范围之外变回原来形状
17     }
18 }

鼠标形状对应的枚举值:

技术图片      Qt::ArrowCursor

技术图片       Qt::UpArrowCursor

技术图片      Qt::CrossCursor

技术图片      Qt::IBeamCursor

技术图片     Qt::WaitCursor

技术图片      Qt::BusyCursor

技术图片        Qt::ForbiddenCursor

技术图片       Qt::PointingHandCursor

技术图片     Qt::WhatsThisCursor

技术图片     Qt::SizeVerCursor

技术图片    Qt::SizeHorCursor

技术图片      Qt::SizeBDiagCursor

技术图片     Qt::SizeFDiagCursor

技术图片      Qt::SizeAllCursor

技术图片     Qt::SplitVCursor

技术图片    Qt::SplitHCursor

技术图片   Qt::OpenHandCursor

技术图片    Qt::ClosedHandCursor

技术图片       Qt::BlankCursor

还可以自定义鼠标形状:

1 Qcurosr *myCursor=new QCursor(QPixmap(":/images/custom.png"),-1,-1);    //-1,-1表示热点位于图片中心
2 this->setCursor(*myCursor); 

 

以上是关于Qt 改变鼠标形状的主要内容,如果未能解决你的问题,请参考以下文章

MFC如何让鼠标移动到按钮上马上改变鼠标形状为手型

qt中怎么改变按钮的形状

在Delphi中怎样抓取鼠标形状

MFC中静态控件怎样改变鼠标的形状呀?

检测鼠标光标何时在 Qt5 和 QML 中的不规则形状图片上

qt中当鼠标移到按钮上如何改变颜色