【发布时间】:2015-08-27 00:57:09
【问题描述】:
我希望能够通过按下一个按钮或一个键来启用和禁用过滤整个 QMainWindow 上的鼠标点击,这将导致过滤开始。我想在一个类QMainWindow 中启用事件过滤器。
我希望能够在我的班级中有一个事件过滤器,我们可以调用MyWindow,据我发现我应该创建一个新班级MouseFilter,重新定义eventFilter(QObject* object,QEvent* event)并将其安装在myWindow
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyWindow w;
w.installEventFilter(new MouseFilter());
w.show();
return a.exec();
}
有没有办法从我的对象内部实现事件过滤器?
解决方案
我想我可能把事情复杂化了。就像继承 mousePressEvent 一样简单。
void MouseFilter::mousePressEvent(QMouseEvent * event){
if(event->button() == Qt::RightButton){
qDebug() << "Right-o";
}
}
【问题讨论】:
标签: c++ qt user-interface event-handling qmouseevent