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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fan_xingwang/article/details/80971157

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

if (event->type() == QEvent::ActivationChange)
    {
        if(QApplication::activeWindow() != this)
        {
            this->close();
        }
    }
    return QWidget::event(event);
展开阅读全文

没有更多推荐了,返回首页