bool Widget::event(QEvent *event) { if (event->type()==QEvent::MouseButtonPress) { qDebug()<<"mouse press int event func"; } else { return QWidget::event(event); } }为什么在event函数中没有起到拦截鼠标点击事件的作用
时间: 2024-01-22 08:04:05 浏览: 107
event:with具有asynciterator支持的严格类型的事件发射器
在代码中,当鼠标点击事件发生时,程序会进入到 `if` 语句中,并输出 "mouse press int event func",但是在 `if` 语句中并没有任何处理,因此事件会被直接处理掉而不会被拦截。
如果您希望在处理完事件后阻止其继续传递,可以将函数返回值设置为 `true`。因此,您需要在 `if` 语句中添加处理代码,并在处理完事件后返回 `true`,以防止事件继续传递,例如:
```
bool Widget::event(QEvent *event) {
if (event->type()==QEvent::MouseButtonPress)
{
qDebug()<<"mouse press int event func";
// 在此添加处理代码
return true;
}
else
{
return QWidget::event(event);
}
}
```
这样就可以拦截鼠标点击事件并进行处理了。
阅读全文