QWidget本身是没有hover属性可以设置的,想要自定义一个hover效果,可以通过 eventFilter 来实现,
废话少说,先上代码
QPopupWgt::QPopupWgt(QWidget *parent)
: QWidget(parent)
{
//setMouseTracking(true);
this->setAttribute(Qt::WA_Hover, true);//开启悬停事件
this->installEventFilter(this); //安装事件过滤器
connect(this, SIGNAL(friendListEleHover(bool)), this, SLOT(friendListEleHoverSlot(bool)));
}
bool QPopupWgt::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::HoverEnter)
{
emit friendListEleHover(true);
return true;
}
else if (event->type() == QEvent::HoverLeave)
{
emit friendListEleHover(false);
return true;
}
return QWidget::eventFilter(obj, event);
}
void QPopupWgt::friendListEleHoverSlot(bool isHover)
{
if (isHover)
{
QPalette pal(this->palette());
pal.setColor(QPalette::Background, Qt::blue);
this->setAutoFillBackground(true);
this->setPalette(