Qt-鼠标事件
myLabel.h:
#ifndef MYLABEL_H
#define MYLABEL_H
#include<QLabel>
#include<QMouseEvent>
class myLabel : public QLabel
{
public:
myLabel(QWidget *);
protected:
void mousePressEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
};
#endif // MYLABEL_H
myLabel.cpp:
#include "mylabel.h"
myLabel::myLabel(QWidget *parent):QLabel(parent)
{
}
void myLabel::mousePressEvent(QMouseEvent *ev)
{
setText(QString("press: %1, %2").arg(QString::number(ev->x()),QString::number(ev->y())));
//显示鼠标点击的坐标
}
void myLabel::mouseReleaseEvent(QMouseEvent *ev)
{
setText(QString("Release: %1, %2").arg(QString::number(ev->x()),QString::number(ev->y())));
//显示鼠标释放的坐标
}
void myLabel::mouseMoveEvent(QMouseEvent *ev)
{
setText(QString("Move: %1, %2").arg(QString::number(ev->x()),QString::number(ev->y())));
//显示鼠标移动的坐标
}
widget.cpp:
#include "mylabel.h"
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
myLabel *label = new myLabel(this);
label->setAlignment(Qt::AlignCenter);
label->resize(760,450);
label->show();
}
Widget::~Widget()
{
}