当前位置: 代码迷 >> QT开发 >> Qt 鼠标过滤,该如何处理
  详细解决方案

Qt 鼠标过滤,该如何处理

热度:111   发布时间:2016-04-25 03:16:43.0
Qt 鼠标过滤
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->tableView->installEventFilter(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if(event->type() == QEvent::MouseButtonPress)
    {
        qDebug() << "mouseEvent";
        QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
        if(mouseEvent->button() == Qt::LeftButton)
        {
            qDebug() << "leftButton";
            return true;
        }
    }

    else if (event->type() == QEvent::KeyPress) {
        QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
        qDebug("Ate key press %d", keyEvent->key());
        return true;
    }
    else
        return QObject::eventFilter(obj, event);
}

键盘事件已经过滤掉了,但是鼠标怎么都没有反应,哪位指点下什么原因,谢谢。
------解决方案--------------------
        if(mouseEvent->button() == Qt::LeftButton)
        {
            qDebug() << "leftButton";
            return true;
        }
下面还要加个:
       else
            return false;
你说的"鼠标怎么都没反应",是鼠标事件没有过滤掉, 点击操作还有效的意思吗?
  相关解决方案