QT中设置当鼠标在窗口外点击时关闭窗口

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

if (event->type() == QEvent::ActivationChange)
    {
        if(QApplication::activeWindow() != this)
        {
            this->close();
        }
    }
    return QWidget::event(event);

猜你喜欢

转载自blog.csdn.net/fan_xingwang/article/details/80971157