QT基本操作(五)之对话框的使用

作者: 日期:2019-11-11 11:23:15

模态对话框

即为弹出对话框之后,原来的对话框将不能选中。connect(p1,&QAction::triggered,

[=](){

QDialog dlg;

dlg.exec();

qDebug() << "1111"

;});

效果如下图所示:

非模态对话框即为弹出对话框之后,原来的对话框还可以选中。

效果如下图所示:

注意在非模态对话框中要将QDialog dlg;放到头文件中,否则会产生阻塞。关于***的对话框

即为告诉用户一些信息的对话框。QAction *p3 = menu->addAction("关于对话框");

connect(p3,&QAction::triggered,

[=]()

{

QMessageBox::about(this,"about","关于QT");

});

}

效果如下图所示:

问题对话框

即问用户是确认或者是取消的对话框。 QAction *p4 = menu->addAction("问题对话框");

connect(p4,&QAction::triggered,

[=]()

{

int ret = QMessageBox::question(this,"question","Are you ok?");

switch (ret) {

case QMessageBox::Yes:

qDebug() << "i am ok";

break;

case QMessageBox::No:

qDebug() << "i am bad";

break;

default:

break;

}

});

效果如下图所示:

这里可以修改上面的按钮Yes、No。可以修改为Ok,Cancel,这个是可以按照帮助文档,自己进行设定的。文件对话框

即为选中就实现打开文件列表的功能。 QAction *p5 = menu->addAction("文件对话框");

connect(p5,&QAction::triggered,

[=]()

{

QString path = QFileDialog::getOpenFileName(

this,

"open",

"../",

"souce(*.cpp *.h);;Text(*.txt);;all(*.*)"

);

qDebug()<