用QWidget实现弹出窗口,点击弹窗外其他位置是时,弹窗隐藏,只需要添加一个窗口属性Qt::Popup;
QPushButton *btn = new QPushButton("popup",this);
btn->setGeometry(100,100,150,50);
QWidget *wPopup = new QWidget();
wPopup->setGeometry(100,152,150,300);
wPopup->setWindowFlags(Qt::Popup); // 重点:设置popup属性
connect(btn,&QPushButton::pressed,this,[=]{
wPopup->show();
});