13,825
社区成员
发帖
与我相关
我的任务
分享
//Widget.h 中声明了eventFilter 函数
protected:
bool eventFilter(QObject *, QEvent *);
//在Widget.cpp中使用的时候出现程序异常结束
#include "widget.h"
#include "ui_widget.h"
#include<QEvent>
#include <QMouseEvent>
#include<QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->label->installEventFilter(this);
ui->label->setMouseTracking(true);
}
Widget::~Widget()
{
delete ui;
}
bool Widget::eventFilter(QObject *obj, QEvent *e)
{
if(ui->label==obj)
{
if(e==NULL)
{
qDebug()<<"NULL string";
QMouseEvent *env=static_cast<QMouseEvent *>(e);
if(e->type()==QEvent::MouseMove)
{
ui->label->setText(QString("Mouse Move:(%1,%2)").arg(env->x()).arg(env->y()));
return true;
}
}
}
return eventFilter(obj,e);
}