Qt中QEvent的过滤和分发

来源:互联网 发布:2017全国人口普查数据 编辑:程序博客网 时间:2024/05/04 04:24

绘制窗体为400*300大小的窗口,标题栏为“My Window"。实现如下效果:

#include "useevent.h"#include <QtGui/QMouseEvent>#include <QtGui/QMessageBox>#include <QtGlobal>UseEvent::UseEvent(QWidget *parent, Qt::WFlags flags): QMainWindow(parent, flags){setWindowTitle(QString("My Window"));setFixedWidth(400);setFixedHeight(300);installEventFilter(this);}bool UseEvent::event(QEvent* e){if (!e->isAccepted() && e->type() == QEvent::MouseButtonPress){QMessageBox::information(NULL, QString("tips"), QString("right click ignored!"));return true;}return false;}bool UseEvent::eventFilter(QObject* o, QEvent *e){if (e->type() == QEvent::MouseButtonPress){QMouseEvent* mouseEvent = dynamic_cast<QMouseEvent*>(e);if (mouseEvent->button() == Qt::RightButton){e->ignore();}}return false;}UseEvent::~UseEvent(){}

0 0