#include<QMouseEvent>
鼠标无论是点击,移动,双击,松开都由鼠标的左右键区别而有区别,所以,严谨的来使用就是如mousePressEvent一样来通过按下的键来区别对待,从而达成不同的需求;
void MainView::mousePressEvent(QMouseEvent *e)
{
if(
e->button()==Qt::RightButton)//鼠标右击
{
qDebug()<<"右"<<e->pos();
}
if(e->button()==Qt::LeftButton)//鼠标左击
{
qDebug()<<"左"<<e->pos();
}
if(e->button()==Qt::MidButton)//滚轮按下
{
qDebug()<<"中"<<e->
pos();
}
}
void MainView::mouseMoveEvent(QMouseEvent *e)
{
//无论按下的是哪个键,只要有按键按下并移动就会触发mouseMoveEvent
qDebug()<<"移动";
}
void MainView::mouseReleaseEvent(QMouseEvent *e)
{
//松开鼠标时触发,无论按下的是哪个按键
qDebug()<<"离开";
}
void MainView::mouseDoubleClickEvent(QMouseEvent *e)
{
//双击鼠标时触发,无论按下的是哪个按键
qDebug()<<"双击";
}
void MainView::wheelEvent(QWheelEvent *e)
{
// 当滚轮远离使用者时
if(e->delta() > 0){
qDebug()<<"1";
}else{//当滚轮向使用者方向旋转时
qDebug()<<"-1";
}
}
扩展: QMouseEvent *e;
e->pos(),获取鼠标位置
e->button(),获取按下的是哪个键
e->delta()==120/-120