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

最佳答案

我认为您正在寻找的是mousePressEvent,您可以在MyWindow中对其进行覆盖

干杯,
  罗斯蒂斯拉夫。

关于c++ - 筛选类中Qt中的鼠标单击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32239008/

10-13 01:03