对话框
1.按模态和非模态分
对话框分为模块对话框和非模块对话框。
1.1 模态对话框
(不可以对其他窗口进行操作)
有阻塞作用
QDialog dlg(this);
dlg.resize(200,100);
dlg.exec()
//exec后会阻塞
1.2 非模态对话框
(可以对其他窗口进行操作)
不会阻塞
QDialog *dlg2 = new QDialog(this);
dlg2->resize(200,100);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose);//关闭的时候就释放内存,防止内存泄露
2.按功能分
2.1 消息对话框
//消息对话框
//错误对话框
QMessageBox::critical(this,"critical","错误");
//信息对话框
QMessageBox::information(this,"info","信息");
//问题对话框
QMessageBox::question(this,"ques","提问");
通过以下代码可以进行用户的保存或取消操作
if(QMessageBox::Save== QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel))
{
qDebug()<<"保存!";
}
else
{
qDebug()<<"取消!";
}
2.2 文件对话框
//文件对话框 参数1 父亲 参数2 标题 参数3 默认打开路径 参数4 过滤文件格式
//返回值是选取的路径
QString str = QFileDialog::getOpenFileName(this,"打开文件","");
qDebug()<<str;