注意,使用lamda表达式的时候,需要在pro下面加入下面的东西,才能使用lamda表达式
CONFIG += c++11
QtDialog.pro
#-------------------------------------------------
#
# Project created by QtCreator 2019-09-18T02:49:41
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 05_QtDialog
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
CONFIG += c++11
模态对话框
Dialog dlg
dlg.exec() 阻塞功能
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//点击新建菜单项 弹出对话框
connect(ui->actionNew, &QAction::triggered, this, [=](){
//对话框 有2种
//模态对话框 (不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)
QDialog dlg(this);
dlg.resize(200, 300);
dlg.exec();//阻塞的操作,只有将对话框关掉才能执行下面的操作
qDebug() << "弹出对话框";
});
}
非模态对话框
Dialog dlg
dlg.show() 会一闪而过 所以创建在堆上
new dlg dlg->show()
设置属性 55号 setAttribute(Qt::WA_DeleteOnClose)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//点击新建菜单项 弹出对话框
connect(ui->actionNew, &QAction::triggered, this, [=](){
//对话框 有2种
/*
//模态对话框 (不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)
QDialog dlg(this);
dlg.resize(200, 300);
dlg.exec();//阻塞的操作,只有将对话框关掉才能执行下面的操作
qDebug() << "弹出对话框";
*/
//QDialog dlg2(this);//创建在栈上,闪一下
QDialog * dialog= new QDialog(this);
dialog->resize(200, 100);
dialog->show();
//需要设置属性
dialog->setAttribute(Qt::WA_DeleteOnClose);
});
}
标准对话框QMessageBox
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//点击新建菜单项 弹出对话框
connect(ui->actionNew, &QAction::triggered, this, [=](){
//使用标准的对话框QMessageBox,"错误"是标题,"critical"是内容
//QMessageBox::critical(this, "错误", "critical");
//信息对话框
//QMessageBox::information(this,"信息","info");
/*
//询问对话框
// 参数1 、父亲 2、标题 3、提示内容 4 按键类型 5 关联回车按键
if(QMessageBox::Save == QMessageBox::question(this,"问题","question",QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Cancel))
{
qDebug() << "点击的是保存";
}
else
{
qDebug() << "点击的是取消";
}
*/
//警告对话框
//QMessageBox::warning(this,"警告!","warning");
//选择颜色对话框
//QColor color = QColorDialog::getColor(QColor(255,0,0));
// qDebug() << color.red() << color.green() << color.blue();
//文件对话框,第二个参数是标题,第三个参数是默认打开的路径,第四个参数是过滤格式文件
//返回值是选中的文件的的路径
QString path = QFileDialog::getOpenFileName(this,"打开文件","C:\\Users\\zhangtao\\Desktop","(*.txt *.png)");
qDebug() << path;
});
}