C++QT入门(4)---对话框

对话框的基本使用

使用前的准备

在写对话框的代码之前,已经利用ui工具提前画好了菜单栏和一些子菜单,以下代码只是对菜单功能的添加
在这里插入图片描述

实现弹出对话框的代码

以下程序针对“文件 --> 新建”,使其按下后弹出不同的对话框
将不同对话框对应的注释去掉即可运行

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDialog>
#include<QDebug>
#include<QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    
    
    ui->setupUi(this);
    //点击新建按钮,弹出对话框
    connect(ui->actionnew,&QAction::triggered,[=]{
    
    
        //对话框有两种分类
        //模态对话框和非模态对话框
        //模态对话框:不可以对其它窗口进行操作
        //非模态对话框:可以对其它窗口进行操作
        /*QDialog qd(this);
        qd.resize(200,100);
        qd.exec();
        qDebug() << "弹出模态对话框" << endl;*/
        //模态对话框
        /*QDialog* qd = new QDialog(this);
        qd->resize(200,100);
        //使对话框在关闭的时候就自动delete,防止内存泄漏
        qd->setAttribute(Qt::WA_DeleteOnClose);
        qd->show();*/
        //消息对话框
        //错误对话框
        //QMessageBox::critical(this,"标题","内容");
        //QMessageBox::critical(this,"critical","错误");
        //信息对话框
        //QMessageBox::information(this,"title","提示信息");
        //问题对话框
        //QMessageBox::question(父亲,"标题","问题内容",按键类型,默认关联回车的按键);
        //可以用返回值判断选择了保存还是取消
        if(QMessageBox::Save == QMessageBox::question(this,"title","问题",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
        {
    
    
            qDebug() << "用户选择的是保存" << endl;
        }
        else if(QMessageBox::Cancel == QMessageBox::question(this,"title","问题",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
        {
    
    
            qDebug() << "用户选择的是取消" << endl;
        }
    });
}

MainWindow::~MainWindow()
{
    
    
    delete ui;
}

效果图演示

非模态对话框

在这里插入图片描述

模态对话框

在这里插入图片描述

错误对话框

在这里插入图片描述

信息对话框

在这里插入图片描述

问题对话框

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46841376/article/details/113745147