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;
}

效果图演示

非模态对话框

在这里插入图片描述

模态对话框

在这里插入图片描述

错误对话框

在这里插入图片描述

信息对话框

在这里插入图片描述

问题对话框

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值