对话框的基本使用
使用前的准备
在写对话框的代码之前,已经利用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;
}