QT的事件过滤是通过重写函数来实现的,这个函数是:eventFilter()
以下是一个通过单击不同的标签,实现标签上图片的变化的例子。
首先新建一个项目,基于对话框
头文件:
#ifndef EVENTFILTER_H
#define EVENTFILTER_H
#include <QDialog>
#include <QImage>
#include <QLabel>
#include <QEvent>
class EventFilter : public QDialog
{
Q_OBJECT
public:
EventFilter(QWidget *parent = 0);
~EventFilter();
public slots:
bool eventFilter(QObject *, QEvent *);
private:
QLabel *label1;
QLabel *label2;
QLabel *label3;
QLabel *stateLabel;
QImage image1;
QImage image2;
QImage image3;
};
#endif // EVENTFILTER_H
.cpp文件:
#include "eventfilter.h"
#include <QGridLayout>
#include <QMouseEvent>
EventFilter::EventFilter(QWidget *parent)
: QDialog(parent)
{
s