首先设置按钮得过滤器:
ui->pushButton->installEventFilter(this);然后设置事件过滤器,在函数内处理按钮得显示:
bool MainLogin::eventFilter(QObject *obj, QEvent *event) { QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect (); switch (event->type()) { case QEvent::HoverEnter: if(obj == ui->pushButton) effect->setBlurRadius(100); //设置模糊半径为100px effect->setColor(QColor(“#FF39F6”)); //设置阴影颜色 effect->setOffset(5,5); //设置水平和垂直方向的偏移量都为0 ui->pushButton->setGraphicsEffect(effect); //为控件应用特效 break; case QEvent::HoverLeave: if(obj == ui->pushButton) effect->setBlurRadius(0); //设置模糊半径为0px effect->setColor(QColor(“#FF39F6”)); //设置阴影颜色 effect->setOffset(0,0); //设置水平和垂直方向的偏移量都为0 ui->pushButton->setGraphicsEffect(effect); //为控件应用特效 break; default: break; } return QWidget::eventFilter(obj, event); }<
如下图所示:
以及: