Reimplemented重写
如果重写某个组件的事件,查找一些方法
1.鼠标信息
鼠标进入:enterEvent
鼠标离开:leaveEvent
鼠标按下:mousePressEvent
鼠标释放:mouseReleaseEvent
鼠标移动:mouseMoveEvent
通过ev 来获取具体信息:
ev->x() x坐标
ev->y() y坐标
判断按键ev->button() = Qt::LeftButton
判断联合按键ev->buttons() & Qt::LeftButton
2.格式化字符串
//QString str = QString(“鼠标按下了 x = %1 y = %2”).arg(ev->x()).arg(ev->y());
#include "mylabel.h"#include <QDebug>Mylabel::Mylabel(QWidget *parent) : QLabel(parent){//开启鼠标实时的追踪 如果不开启 默认是按下鼠标移动才会触发mouseMoveEventsetMouseTracking(true);}//鼠标进入时间void Mylabel::enterEvent(QEvent *event){qDebug() << "鼠标进入";ww}//鼠标离开时间void Mylabel::leaveEvent(QEvent *event){qDebug() << "鼠标离开";}//鼠标移动void Mylabel::mouseMoveEvent(QMouseEvent *ev){// &if(ev->buttons() & Qt::LeftButton)qDebug() << "鼠标移动";}//鼠标按下void Mylabel::mousePressEvent(QMouseEvent *ev){//QString格式化输出 1 2 对应的是位置 位置是基于控件的//QString str = QString("鼠标按下了 x = %1 y = %2").arg(ev->x()).arg(ev->y());//相当于屏幕的//鼠标左键if(ev->button() == Qt::LeftButton){QString str = QString("鼠标按下了 x = %1 y = %2").arg(ev->globalX()).arg(ev->globalY());qDebug() << str;}}//鼠标释放void Mylabel::mouseReleaseEvent(QMouseEvent *ev){qDebug() << "鼠标释放";}

