有时界面窗口我们想点击其他地方界面就消失,这有很多种方法,接下来说一下,用判断当前是否是活动窗口的方法来判断窗口是否应该关闭
代码很简单:如下
#include "milogintip.h"
#include <QPushButton>
#include <QVBoxLayout>
#include <QApplication>
MiloginTip::MiloginTip(QWidget *parent)
: QWidget(parent)
{
initForm();
}
/**
* @author swang
* @date 2020-08-25
* @brief 初始化界面样式
* @return [NULL]:返回空
*/
void MiloginTip::initForm()
{
setFocus();
setWindowFlags(Qt::FramelessWindowHint | Qt::Window);
installEventFilter(this);
}
/**
* @author swang
* @date 2020-08-25
* @brief 事件循环
* @parameter [QObject](obj):发出事件的对象 | [QEvent](event):捕获到的事件
* @return [NULL]:返回空
*/
bool MiloginTip::eventFilter(QObject *o, QEvent *e)
{
if (e->type() == QEvent::ActivationChange)
{
if(QApplication::activeWindow() != this)
{
this->hide();
}
}
return QWidget::eventFilter(o,e);
}