我们想要对某一个窗口进行这样的设置:
当鼠标在此窗口区域外点击时,将此窗口关闭。
一般来讲,有以下几种方式:
1.重写鼠标点击事件,判断当前鼠标坐标,当不在窗口坐标区域内时,将窗口关闭。
2.重写失去焦点事件,当窗口失去焦点时,将窗口关闭。
3.也是最简单的方法,直接判断此窗口是不是当前活跃窗口,如果不是,将窗口关闭,重写 bool event(QEvent *event)
函数。
if (event->type() == QEvent::ActivationChange)
{
if(QApplication::activeWindow() != this)
{
this->close();
}
}
return QWidget::event(event);