Qt设置鼠标样式

this->setMouseTracking(true);      //设置为不按下鼠标键触发moveEvent
void mouseMoveEvent(QMouseEvent* event)
{
    QPoint mousepos = event()->pos();

    //在坐标(0 ~ width,0 ~ height)范围内改变鼠标形状
    if(mousepos.rx() > 0 
       && mousepos.rx() < width
       && mousepos.ry() > 0
       && mousepos.ry() < height)
    {
           this->setCursor(Qt::CrossCursor);
    }
    else
    {
        this->setCursor(Qt::ArrowCursor);      //范围之外变回原来形状
    }
}

鼠标形状对应的枚举值:

      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

 

自定义鼠标形状:

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

由图像构造QCursor时,第一个指定图像(由QPixmap构造), 后面两个参数分别是鼠标x和y方向的热点,热点即鼠标点击的位置,设置为(0, 0)时, 鼠标点击位置位于图像左上角,设置为(-1, -1)时, 鼠标热点位于图像中心。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页