QT 学习记录(六)模态,非模态化,标准对话框,文件对话框

目录

前言:

一,模态和非模态化

二,标准对话框和文件对话框

三,结果展示


前言:

这个家只允许有一颗星星

一,模态和非模态化

pro文件

CONFIG += C++11

 cpp文件

#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QDialog>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    QMenuBar *mBar = menuBar();
    setMenuBar(mBar);
    QMenu *menu = mBar ->addMenu("对话框");

    QAction *p1 = menu->addAction("模态对话框");
    connect(p1,&QAction::triggered,
            [=]()
            {
              QDialog dlg;
              dlg.exec();
              qDebug() << "1111";
            });

    QAction *p2 = menu->addAction("非模态对话框");
    connect(p2,&QAction::triggered,
            [=]()
            {

//              dlg.show();
//            qDebug() << "22222";

//              QDialog *p = new QDialog(this);
//              p->show();

                QDialog *p = new QDialog(this);
                p->setAttribute(Qt::WA_DeleteOnClose);
                p->show();
            });
}

MainWindow::~MainWindow()
{
}

二,标准对话框和文件对话框

#include <QMessageBox>
#include <QFileDialog>

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?",
                                              QMessageBox::Ok,
                                              QMessageBox::Cancel
                                                                );
              switch (ret)
              {
                case QMessageBox::Ok:
                    qDebug() << "i am ok";
                  break;
                case QMessageBox::Cancel:
                    qDebug() << "i am bad";
                  break;
              default:
                  break;
              }
            });
    QAction *p5 = menu->addAction("文件对话框");
    connect(p5,&QAction::triggered,
            [=]()
            {
              QString path = QFileDialog::getOpenFileName(
                          this,
                          "open",
                          "../",
              "souce(*.cpp *.h);;Text(*.txt);;all(*.*)"
                          );

               qDebug() << path  ;
            });
}

三,结果展示

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值