7、常见的对话框
1、模态对话框,该对话框弹出后 不可以再操作对话框外面的选项
#include <QDialog> // 包含的头文件 QMenuBar *mBar = menuBar(); setMenuBar(mBar); // 设置菜单栏 QMenu *menu = mBar->addMenu("对话框"); // 菜单栏添加一个选项 QAction *p1 = menu->addAction("模态对话框"); // 对话框按钮添加第一个可选择的动作 connect(p1,&QAction::triggered, // 处理p1的动作 [=]() { QDialog log; // 模态对话框 log.exec(); // 窗口等待消息 程序停在这里 } );
2、非模态对话框,该对话框出现后,可以操作其他窗口的选项
// 基于上一步创建的选项,添加选项 QAction *p2 = menu->addAction("非模态对话框");//对话框按钮添加第二个可选择的动作 connect(p2,&QAction::triggered, [=]() { // 非模态对话框 // dlg.show(); // 将dlg定义在头文件中,类释放时释放内存 QDialog *d = new QDialog(this); d->setAttribute(Qt::WA_DeleteOnClose); // 关闭窗口时释放内存 d->show(); } );
3、标准对话框
1、abort()对话框
#include <QMessageBox> // 包含头文件 // 基于上节内容继续添加 QAction *p3 = menu->addAction("关于对话框"); connect(p3,&QAction::triggered, [=]() { QMessageBox::about(this,"abort","关于QT对话框"); } );

2、询问(问题对话框)
QAction *p4 = menu->addAction("问题对话框"); connect(p4,&QAction::triggered, [=]() { // 默认的标准对话框 int ret = QMessageBox::question(this,"question Dialog","是否需要关闭对话框"); switch(ret) { case QMessageBox::Yes: qDebug()<< "Yes 关闭"; break; case QMessageBox::No: qDebug()<< "No 不关闭"; break; default: break; } // 自定义对话框格式 QMessageBox::question(this,"Question Dialog","是否正常退出", QMessageBox::Cancel| QMessageBox::Ok ); } );
 标准对话框
标准对话框 自定义对话框
自定义对话框
3、文件对话框(获取文件路径)
QAction *p5 = menu->addAction("文件对话框"); connect(p5,&QAction::triggered, [=]() { // 获取文件路径 QString path = QFileDialog::getOpenFileName(this, "open", "../", "source(*.cpp *.h);;Text(*.txt);;all(*.*)" ); qDebug()<< path; // 打印文件路径 } );
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号