现象:
主窗口属性:
setWindowFlags(Qt::FramelessWindowHint | Qt::Popup);
创建子窗口对象:QDialog
通过条件触发(按钮或者其他),弹出QDialog
void xxxx::onClick()
{
auto dialog = new QDialog(this);
dialog->exec();
}
当exec()返回后,触发dialog的closeEvent函数,进而触发主函数(main)的exec退出
解决:
重载QDialog的closeEvent即可解决:
void QCusDialog::closeEvent(QCloseEvent *e)
{
QDialog::closeEvent(e);
e->ignore();
deleteLater();//看场景是否在关闭后删除数据
}