Qt学习笔记:多种对话框

此文章,只是当做自己学习记录,水平有限

用消息对话框那么肯定就关系到点击事件,所以用到了connect

先上代码

#include "qt_dialog.h"
#include "ui_qt_dialog.h"



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

    connect(ui->actionnew, &QAction::triggered,[=](){
        /*对话框:模态对话框、非模态对话框
         * 模态对话框:不可以对其他窗口进行操作(阻塞)
         * 非模态对话框:可以对其他窗口进行操作*/
/**
        //模态创建
        QDialog dlg(this);  //创建窗口
        dlg.exec();     //用模态的方式进行创建。
        qDebug() << "模态对话框弹出了" ;
*/




        //非模态创建
//        QDialog dlg2(this);     //栈对象,创建会就没了
        /*QDialog *dlg2 = new QDialog(this);
        dlg2->show();
        dlg2->setAttribute(Qt::WA_DeleteOnClose);   //55号属性
        qDebug() << "模态对话框弹出了" ;*/

        //消息对话框(错误对话框)
//        QMessageBox::critical(this, "critical", "错误");

        //信息对话框
//        QMessageBox::information(this, "info", "提示");

        //问题对话框
        //QMessageBox::question(this,  "ques", "问题", QMessageBox::Save | QMessageBox::Cancel);

        /*if(QMessageBox::Save == QMessageBox::question(this,  "ques", "问题", QMessageBox::Save | QMessageBox::Cancel)){
            qDebug() << "选择的是保存";
        }else{//用返回值确认
            qDebug() << "选择的是取消";

        }*/

        //警告对话框
        //QMessageBox::warning(this,  "warning", "警告");


        //其他标准(框颜色对话框)
//        QColor color = QColorDialog::getColor(QColor(110, 101, 011));
//        qDebug() <<  "r = " << color.red()<< "g = " << color.green() << "b = " << color.blue;

        //文件对话框
       // QFileDialog::getOpenFileName(this,  "打开文件", "D:\\123" );


        //文件对话框(过滤的方式)
//        QString str = QFileDialog::getOpenFileName(this,  "打开文件", "C:\\Users\\90822\\Documents\\PanDownload\\PanData", "(*.txt)");
//        qDebug() << str ;


        //字体对话框
        bool flag;
        QFont font = QFontDialog::getFont(&flag, QFont("华文彩云", 28));
        qDebug() << "字体:" << font.family() << "是否更改了字号" << font.pointSize() << "是否加粗了" << font.bold();


    } );
}

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

模态对话框

不可以对其他窗口进行操作(阻塞)

//模态创建
QDialog dlg(this);  //创建窗口
dlg.exec();     //用模态的方式进行创建。
qDebug() << "模态对话框弹出了" ;

非模态对话

可以对其他窗口进行操作

//非模态创建
//QDialog dlg2(this);     //栈对象,创建会就没了
QDialog *dlg2 = new QDialog(this);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose);   //55号属性
qDebug() << "模态对话框弹出了" ;

消息对话框(错误对话框)

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

信息对话框

QMessageBox::information(this, "info", "提示");

问题对话框

QMessageBox::question(this,  "ques", "问题", QMessageBox::Save | QMessageBox::Cancel);

//这里的QMessageBox::Save | QMessageBox::Cancel)可以自行设置,弹出的选择对话框问题选择是Save 还是 Cancel
if(QMessageBox::Save == QMessageBox::question(this,  "ques", "问题", QMessageBox::Save | QMessageBox::Cancel)){
    qDebug() << "选择的是保存";
}else{//用返回值确认
    qDebug() << "选择的是取消";

首先,它是static的,所以我们能够使用类名直接访问到(怎么看都像废话…);然后看它那一堆参数,第一个参数parent,说明它的父组件;第二个参数title,也就是对话框的标题;第三个参数text,是对话框显示的内容;第四个参数buttons,声明对话框放置的按钮,默认是只放置一个OK按钮,这个参数可以使用或运算,例如我们希望有一个Yes和一个No的按钮,可以使用QMessageBox::Yes | QMessageBox::No,所有的按钮类型可以在QMessageBox声明的StandarButton枚举中找到;第五个参数defaultButton就是默认选中的按钮,默认值是NoButton,也就是哪个按钮都不选中。这么多参数,豆子也是记不住的啊!所以,我们在用QtCreator写的时候,可以在输入QMessageBox::information之后输入(,稍等一下,QtCreator就会帮我们把函数签名显示在右上方了,还是挺方便的一个功能!

警告对话框

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

其他标准(框颜色对话框)

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

文件对话框

QFileDialog::getOpenFileName(this,  "打开文件", "D:\\123" );

过滤的选择某文件类型

QFileDialog::getOpenFileName(this,  "打开文件", "D:\\123" );

字体对话框

QFont font = QFontDialog::getFont(&flag, QFont("华文彩云", 28));
qDebug() << "字体:" << font.family() << "是否更改了字号" << font.pointSize() << "是否加粗了" << font.bold();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值