功能:移入widget显示卡片,并且可以进入卡片不消失(widget与卡片距离离得很近),移出卡片才离开
bool DataShowWidget::eventFilter(QObject *obj, QEvent *event)
{
if (obj == ui->widget && event->type() == QEvent::Enter) {
if (!m_noFollow) {
m_noFollow = new NoFollowWidget(this);
m_noFollow->installEventFilter(this);
connect(m_noFollow, &NoFollowWidget::leaveNoFollow,
this, &DataShowWidget::onLeaveNoFollow);
}
QPoint pos = ui->widget->mapToGlobal(QPoint(0, 0)) +
QPoint(0, ui->widget->height());
m_noFollow->move(pos.x(), pos.y());
m_noFollow->show();
m_noFollow->adjustSize();
}
if (obj == ui->widget&& event->type() == QEvent::Leave) {
if (!m_noFollow) {
return QWidget::eventFilter(obj, event);
}
if (m_noFollow->geometry().contains(QCursor::pos())) {
return QWidget::eventFilter(obj, event);
}
m_noFollow->hide();
}
return QWidget::eventFilter(obj, event);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)