我希望能够通过按下一个按钮或一个键来启用和禁用过滤整个 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";
}
}