一、QDialog 基础模态与非模态QDialog 是弹窗对话框基类两种弹出方式模态 exec ()阻塞父窗口弹窗不关闭无法操作主界面返回对话框关闭码cpp运行QDialog dlg; dlg.setWindowTitle(模态弹窗); int ret dlg.exec(); // 阻塞弹窗关闭才继续往下执行非模态 show ()不阻塞弹窗和主窗口可同时操作底层依赖事件循环cpp运行QDialog *dlg new QDialog(this); dlg-setAttribute(Qt::WA_DeleteOnClose); // 关闭自动释放内存 dlg-show();二、QMessageBox 标准消息框提示 / 警告 / 错误 / 询问cpp运行// 信息提示 QMessageBox::information(this,提示,操作成功); // 询问弹窗点击确定/取消获取返回值 int res QMessageBox::question(this,确认,是否删除数据); if(res QMessageBox::Yes){/*执行删除*/}三、QFileDialog 文件对话框选择文件 / 文件夹 / 保存路径cpp运行// 选择单个文件 QString path QFileDialog::getOpenFileName(this,选择文件,.,所有文件(*.*);;文本(*.txt)); // 选择保存路径 QString savePath QFileDialog::getSaveFileName(this,保存文件,a.txt);小结简单提示用 QMessageBox文件操作 QFileDialog自定义弹窗继承 QDialog需要阻塞用 exec非阻塞 showWA_DeleteOnClose。
Qt 入门 08|QDialog 对话框:模态 / 非模态区别,QMessageBox/QFileDialog 弹窗实战
发布时间:2026/6/8 1:57:24
一、QDialog 基础模态与非模态QDialog 是弹窗对话框基类两种弹出方式模态 exec ()阻塞父窗口弹窗不关闭无法操作主界面返回对话框关闭码cpp运行QDialog dlg; dlg.setWindowTitle(模态弹窗); int ret dlg.exec(); // 阻塞弹窗关闭才继续往下执行非模态 show ()不阻塞弹窗和主窗口可同时操作底层依赖事件循环cpp运行QDialog *dlg new QDialog(this); dlg-setAttribute(Qt::WA_DeleteOnClose); // 关闭自动释放内存 dlg-show();二、QMessageBox 标准消息框提示 / 警告 / 错误 / 询问cpp运行// 信息提示 QMessageBox::information(this,提示,操作成功); // 询问弹窗点击确定/取消获取返回值 int res QMessageBox::question(this,确认,是否删除数据); if(res QMessageBox::Yes){/*执行删除*/}三、QFileDialog 文件对话框选择文件 / 文件夹 / 保存路径cpp运行// 选择单个文件 QString path QFileDialog::getOpenFileName(this,选择文件,.,所有文件(*.*);;文本(*.txt)); // 选择保存路径 QString savePath QFileDialog::getSaveFileName(this,保存文件,a.txt);小结简单提示用 QMessageBox文件操作 QFileDialog自定义弹窗继承 QDialog需要阻塞用 exec非阻塞 showWA_DeleteOnClose。