网上的
void enterEvent(QEvent *);
void leaveEvent(QEvent *);
void QQWidget::enterEvent(QEvent *)
{
if(ui->widget->geometry().contains(this->mapFromGlobal(QCursor::pos())))
{
qDebug()<<"123";
}
}
void QQWidget::leaveEvent(QEvent *)
{
qDebug()<<"123";
}
但是需要重写一个类继承QWidget类,然后定义进出的widget
于是采用事件过滤器和 QEvent::HoverEnter、QEvent::HoverLeave
bool eventFilter(QObject *obj, QEvent *event);
//事件过滤器
bool QQWidget::eventFilter(QObject *obj, QEvent *event)
{
if(obj == ui->widget) {
if(event->type() == QEvent::HoverEnter) {
qDebug() << event;
ui->label->setStyleSheet("background-image:url(:/resources/image/close_nor(3).svg);");
ui->QQ_label->setText("<a href=\"https://jq.qq.com/?_wv=1027&k=cvBVzBZ6\" style=\"color:#4C5CE0;text-decoration:none;\">" + m_tr[0]);
return true;
}
if(event->type() == QEvent::HoverLeave) {
qDebug() << event;
ui->label->setStyleSheet("background-image:url(:/resources/image/close_nor(1).svg);");
ui->QQ_label->setText("<a href=\"https://jq.qq.com/?_wv=1027&k=cvBVzBZ6\" style=\"color:#4F5D79;text-decoration:none;\">" + m_tr[0]);
return true;
}
}
return QWidget::eventFilter(obj,event);
}