模态对话框与非模态对话框
对话框的分类:
1.模态对话框:打开后不可以对其他窗口进行操作
2.非模态对话框:打开后仍可以对其他窗口进行操作
模态对话框的创建
#include<QDialog>
connect(ui->actionNew,&QAction::triggered,[=](){
QDialog dlg(this);
dlg.resize(150,100);//重设对话框的大小
dlg.exec();//弹出对话框
});
非模态对话框的创建
connect(ui->actionNew,&QAction::triggered,[=](){
QDialog * dlg = new QDialog(this);
dlg->resize(150,100);
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->show();
});
消息对话框
QMessageBox 模态
错误对话框
connect(ui->actionNew,&QAction::triggered,[=](){
QMessageBox::critical(this,"critical","错误");
});
各个参数的含义:
this是对话框的父类对象,“critical”是对话框的名称,“错误”是对话框的文字提示
信息对话框 模态
connect(ui->actionNew,&QAction::triggered,[=](){
QMessageBox::information(this,"inform","信息");
});
参数含义同上
提问对话框 模态
QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel);
前三个参数含义同上,第四个参数可以改变两个选项的值
第五个参数:QMessageBox::Cancel
默认激活的选项
捕获用户做出的选择
if(QMessageBox::Save == QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
qDebug() << "选择的是保存";
else
qDebug() << "选择的是取消";
警告对话框
QMessageBox::warning(this,"warning","警告");
其他标准对话框
颜色对话框
#include<QColorDialog>
QColor color = QColorDialog::getColor(QColor(255,0,0));
文件对话框
#include<QFileDialog>
QFileDialog::getOpenFileName(this,"打开文件","D://","(*.docx)");
第三个参数:默认文件夹
第四个参数:只保留此格式的文件
字体对话框
#include<QFontDialog>
bool flag;
QFontDialog::getFont(&flag,QFont("仿宋",28));