mylabel.cpp## 标题
#include "mylabel.h"
#include<QMouseEvent>
#include<QString>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
this->setMouseTracking(true );
}
void MyLabel::mousePressEvent(QMouseEvent *ev)
{
int i = ev->x();
int j = ev->y();
QString text = QString("<center><h1>Mouse Press:(%1,%2)</h1></center>").arg(i).arg(j);
this->setText(text);
}
void MyLabel::mouseReleaseEvent(QMouseEvent *ev)
{
}
void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
}
void MyLabel::enterEvent(QEvent *ev)
{
QString text = QString("<center><h1>Mouse enter</h1><center>");
this->setText(text );
}
void MyLabel::leaveEvent(QEvent *ev)
{
QString text = QString("<center><h1>Mouse leave</h1><center>");
this->setText(text);
}
mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui->setupUi(this);
timerID = this->startTimer(1000);
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::keyPressEvent(QKeyEvent *event)
{
}
void MyWidget::timerEvent(QTimerEvent *event)
{
static int sec = 0;
ui->label->setText(QString("<center><h1>timer out:%1</h1><center>")
.arg(sec++ ));
if(5 ==sec )
{
this->killTimer(this->timerID );
}
}
mylabel.h
#ifndef MYLABEL_H
#define MYLABEL_H
#include <QLabel>
#include<QWidget>
class MyLabel : public QLabel
{
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = nullptr);
protected:
void mousePressEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
void enterEvent(QEvent * ev);
void leaveEvent(QEvent *ev);
signals:
};
#endif
mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class MyWidget; }
QT_END_NAMESPACE
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
~MyWidget();
protected:
void keyPressEvent(QKeyEvent *event);
void timerEvent(QTimerEvent *event );
private:
Ui::MyWidget *ui;
int timerID;
};
#endif