鼠标事件:QMouseEvent

#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 

猜你喜欢

转载自blog.csdn.net/qq_41672557/article/details/80306282
今日推荐