- 模态对话框 :在该对话框打开的时候,不可以对其他窗口进行操作
- 非模态对话框 :在该对话框打开的时候,可以对其他窗口进行操作
新建按钮,弹出对话框
模式对话框
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
// 创建一个模态对话框
QDialog dlg(this);
dlg.exec();
// 点击完弹出对话框的×之后,控制台才会显示下一个条输出语句
qDebug() << "模态对话框弹出";
});
非模态对话框
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//非模态对话框
QDialog dlg2(this);
//设置对话框大小
dlg2.resize(200,100);
dlg2.show();
qDebug() << "模态对话框弹出";
});
新建的对话框在栈区,点击后显示一下就会消失,可以放在堆上
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//非模态对话框
QDialog * dlg2 = new QDialog(this);
//设置对话框大小
dlg2->resize(200,100);
dlg2->show();
qDebug() << "模态对话框弹出";
});
运行结果:
消息对话框
错误提示对话框
- 关键词:
critical
- 头文件:
#include <QMessageBox>
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
// 消息对话框
QMessageBox::critical(this,"critical","错误");
});
运行结果:
信息对话框
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
// 信息对话框
QMessageBox::question(this,"info","信息");
});
提问对话框
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//提问对话框
QMessageBox::question(this,"ques","提问");
});
结果:
警告对话框
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//警告对话框
QMessageBox::warning(this,"warning","警告");
});
其他标准对话框
颜色对话框
- 关键词:
QColorDialog
- 需要添加头文件:
#include <QColorDialog>
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//颜色对话框
QColorDialog::getColor(255,0,0);
});
也可以返回选中颜色的rbg值
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
// //颜色对话框
QColor co = QColorDialog::getColor(255,0,0);
qDebug() << "r=" << co.red()<< "g=" << co.green()<< "b=" << co.blue();
});
随便选中一个颜色后,点击ok控制台会输出:
文件对话框
- 关键词:
QFileDialog
- 需要添加头文件:
#include <QFileDialog>
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//文件对话框
QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\27788\\Desktop");
});
字体对话框
- 关键字:
QFontDialog
- 需要添加头文件:
#include <QFontDialog>
ui->setupUi(this);
// 新建按钮弹出对话框
connect(ui->action,&QAction::triggered,[=](){
//字体对话框
bool flag;
QFont font = QFontDialog::getFont(&flag,QFont("华文彩云",36));
qDebug() <<"字体:"<<font.family()<<"字号"<<font.pointSize() <<"是否加粗" << font.bold() << "是否倾斜"<<font.italic();
});
选中一个点击OK,控制台会输出