利用事件过滤器实现按钮双击功能,新手第一次写这个,网上找不到方便的方法,所以就直接上代码了。
首先,在需要点击的按钮或者控件设置事件过滤器。
例如:ui->btnPressure->installEventFilter(this);
.......................
然后在.h文件添加事件函数
bool MainWindow::eventFilter(QObject *watched, QEvent *event);
在.cpp文件实现 ,另:项目需要用的比较多,所以给合在一起了。注意分开就好。
bool MainWindow::eventFilter(QObject *watched, QEvent *event)
{ if(watched==ui->btnPressure||watched==ui->btnStart||watched==ui->btnPause||watched==ui->btnUseTime||watched==ui->btnAuxiliary||watched==ui->btnUser||watched==ui->btnTrigger||watched==ui->btnExit) { if(event->type()==QEvent::MouseButtonDblClick) { QMouseEvent *e = static_cast<QMouseEvent *>(event); if(e->button() == Qt::LeftButton) {
if(watched==ui->btnPressure)
qDebug()<<"参数双击了按钮";
else if(watched==ui->btnStart)
qDebug()<<"开始双击了按钮";
else if(watched==ui->btnPause)
qDebug()<<"双压机双击了按钮";
else if(watched==ui->btnUseTime)
qDebug()<<"治疗时间机双击了按钮";
else if(watched==ui->btnAuxiliary)
qDebug()<<"反搏比双击了按钮";
else if(watched==ui->btnUser)
qDebug()<<"用户管理双击了按钮";
else if(watched==ui->btnTrigger)
qDebug()<<"触发模式双击了按钮";
else if(watched==ui->btnExit)
qDebug()<<"退出双击了按钮";
}
return true;
}
}
return QWidget::eventFilter(watched, event);
}