QT eventFilter使用问题
使用QT5的eventFilter时遇到程序异常结束
在界面文件中我拖了一个QLabel
在界面文件中我拖了一个QLabel
//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);
}
...全文
相关推荐
Qt实现无边框窗体+QSS美化
无边框QMainWindow、QWidget、QDialog,以及带标题栏的基础无边框窗体,使用时可以直接继承带标题栏的基础无边框窗体,即可实现窗口无边框化
QT无边框窗口,无边框弹出框,无边框MessageBox
QT无边框窗口,无边框弹出框,无边框MessageBox
Qt 使用QPainter类在子控件上画图
因为事件过滤器的影响 无法直接使用QPainter类在子控件上实现画图操作,需使用eventFilter函数进行修改
实现窗口悬浮效果
Qt悬浮窗口,实现主窗口与子悬浮窗口之间的转换,悬浮窗口显示的桌面最顶端,且可以实现自动隐藏,当鼠标移动到窗口顶部,悬浮窗口又可以显示出来
QT实例源代码(Linux窗口程序设计—Qt4精彩实例分析)
与书籍Linux窗口程序设计—Qt4精彩实例分析配套 有每个例子完整的原代码 不知道exe文件在win7下是否可用 主要让QT初学者配合书籍看到完整的例子代码


