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;
你说的"鼠标怎么都没反应",是鼠标事件没有过滤掉, 点击操作还有效的意思吗?