QT_C++04-创建基础界面,对话框

这篇博客详细介绍了如何在Qt环境中创建基础界面、模态与非模态对话框,以及使用QMessageBox实现各种消息对话框。通过实例代码展示了对话框的创建和标准对话框的使用,包括颜色选择、文件选择和字体选择等,帮助开发者更好地理解和运用Qt的界面交互功能。
摘要由CSDN通过智能技术生成

01 .创建基础界面

利用界面文件(.ui)创建界面,详情参见

02.对话框-模态/非模态

1.模态对话框

模态对话框: 创建对话框后,不可以对其他窗口进行操作。除非关闭该对话框才能进行其他操作。(具有阻塞功能)

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QDialog"
#include"QDebug"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //点击新建菜单项,弹出对话框
    connect(ui->actionnew,&QAction::triggered,this,[=](){
    //对话框,有两种
    //模态对话框(不可以对其他窗口进行操作)  非模态对话框(可以对其他窗口操作)

    // 1. 模态对话框
    QDialog dlg(this);
    dlg.resize(200,100);
    dlg.exec();//阻塞

    qDebug()<<"弹出对话框!";

    });
}

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

在这里插入图片描述

2.非模态对话框

非模态对话框: 创建对话框后,可以对其他窗口进行操作。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QDialog"
#include"QDebug"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //点击新建菜单项,弹出对话框
    connect(ui->actionnew,&QAction::triggered,this,[=](){
    //对话框,有两种
    //模态对话框(不可以对其他窗口进行操作)  非模态对话框(可以对其他窗口操作)

    // 1. 模态对话框
//    QDialog dlg(this);
//    dlg.resize(200,100);
//    dlg.exec();//阻塞

//    qDebug()<<"弹出对话框!";

      //2.非模态对话框创建
       //QDialog dlg2(this);//创建到栈上,一闪而过
      QDialog * dlg2 = new QDialog(this);
      dlg2->resize(200,100);
      dlg2->show();

      //需要设置属性 dlg2
      dlg2->setAttribute(Qt::WA_DeleteOnClose);
      //上述操作,在点击关闭对话框后,对话框对象就会被释放,
      //      防止重复创建对象引起内存泄露
    });
}

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

在这里插入图片描述

03 消息对话框-QMessageBox

消息对话框:包含四个公有成员函数,实现消息功能(错误、信息、问题、警告)

# include < QMessageBox >

在这里插入图片描述

1.错误对话框

QMessageBox::critical(this,"错误!","critical");

在这里插入图片描述

2.信息对话框

QMessageBox::information(this,"info","信息");

在这里插入图片描述

3.问题对话框

#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,this,[=](){
    //对话框,有两种
    //模态对话框(不可以对其他窗口进行操作)  非模态对话框(可以对其他窗口操作)

    // 1. 模态对话框
//    QDialog dlg(this);
//    dlg.resize(200,100);
//    dlg.exec();//阻塞

//    qDebug()<<"弹出对话框!";

      //2.非模态对话框创建
       //QDialog dlg2(this);//创建到栈上,一闪而过
      QDialog * dlg2 = new QDialog(this);
      dlg2->resize(200,100);
      dlg2->show();

      //需要设置属性 dlg2
      dlg2->setAttribute(Qt::WA_DeleteOnClose);
      //上述操作,在点击关闭对话框后,对话框对象就会被释放,
      //      防止重复创建对象引起内存泄露

      //使用标准对话框 QMessageBox
      //错误对话框
      //QMessageBox::critical(this,"错误!","critical");
      //信息对话框
      //QMessageBox::information(this,"info","信息");
      //问题对话框:默认是yes/no两个选项
    //  QMessageBox::question(this,"ques","提问");

       QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,
                                 QMessageBox::Cancel);
       //      参数1:父亲,参数2:标题,参数3:提示内容;参数4:两个选项;参数5:默认关联回车选项
       if (QMessageBox::Save==QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Cancel))
       {
           qDebug()<<"选择的是保存"<<endl;
       }
       if (QMessageBox::Cancel==QMessageBox::question(this,"ques","提问",
                                                      QMessageBox::Save|QMessageBox::Cancel,
                                                      QMessageBox::Cancel))
       {
           qDebug()<<"选择的是取消"<<endl;
       }

    });
}

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

在这里插入图片描述

4.警告对话框

QMessageBox::warning(this,"warning","警告");

在这里插入图片描述

04 其他标准对话框

标准对话框:是QT内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打卡文件、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框。Qt内置的标准对话框可以分为以下几类:
(1)QColorDialog:选择颜色
(2)QFileDialog:选择文件或者目录
(3)QFontDialog:选择字体
(4)QInputDialog:允许用户输入一个值,并将其值返回
(5)QMessageBox:模态对话框,用于显示信息、询问问题等
(6)QPageSetupDialog:为打印机提供纸张相关的选项
(7)QPrintDialog:打印机配置
(8)QPrintPreviewDialog:打印预览
(9)QProgressDialog:显示操作过程

1.颜色对话框

QColor color=QColorDialog::getColor(QColor(255,0,0));
qDebug()<<"r="<<color.red()<<"g="<<color.green()<<" b="<<color.blue();

在这里插入图片描述

2.文件对话框

QString strf=QFileDialog::getOpenFileName(this,"打开文件","F:\\","(*.rar)");

在这里插入图片描述

3.字体对话框

bool flag;
QFont gf=QFontDialog::getFont(&flag,QFont("华文仿宋",36)); qDebug()<<"字体:"<<gf.family()<<"字号:"<<gf.bold()<<endl;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值