当鼠标移动到头像控件时,显示悬浮窗,当鼠标离开时,悬浮窗隐藏。
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint);
void enterEvent(QEvent * event);
QPoint oPoint = this->mapToGlobal(QPoint(0, this->height())); m_pWidget->move(oPoint);
3、实现鼠标移走隐藏效果
this->startTimer(1000);void GSJLoginPictureLabel::timerEvent(QTimerEvent * ev)
{
if ((m_pWidget != nullptr) && (m_pWidget->isVisible()))
{
QPoint oPoint = QCursor::pos();
QPoint oSelfPoint = this->mapFromGlobal(oPoint);
QPoint oWidgetPoint = m_pProjectWidget->mapFromGlobal(oPoint);
QRect oSelfRect = this->rect();
QRect oWidgetRect = m_pWidget->rect();
if ((!oSelfRect.contains(oSelfPoint)) && (!oWidgetRect.contains(oWidgetPoint)))
{
m_pWidget->hide();
killTimer(ev->timerId());
}
}
else
{
killTimer(ev->timerId());
}
}
原文:http://www.cnblogs.com/huoqs/p/6270243.html