QT 改變滑鼠形狀
阿新 • • 發佈:2018-12-02
改變滑鼠形狀,在繪製座標系的時候有用到,特此記下:
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);