QT学习日记9——对话框

学习视频链接

最新QT从入门到实战完整版|传智教育_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1g4411H78N?spm_id_from=333.337.search-card.all.click&vd_source=0471cde1c644648fafd07b54e303c905

目录

一、自定义对话框

1.1 模态对话框:

1.2 非模态对话框:

1.3 案例

二、系统提供好的对话框

2.1 标准对话框

2.2 消息对话框

2.3 信息对话框

2.4 提问对话框 

2.5 颜色对话框

2.6 文件对话框

2.6 字体对话框

三、登录窗口布局

3.1 组件的增加

3.2 让组件对齐

3.3 打破布局

3.4 栅格布局

3.4 其他细微的调整


一、自定义对话框

1.1 模态对话框:

不可以对其他窗口进行操作

1.2 非模态对话框:

可以对其他的窗口进行操作

1.3 案例

下图是非模态对话框

QT学习日记9——对话框_第1张图片

在界面中打开窗口后,可以对原来的界面进行修改

模态对话框

运行弹窗的时候,函数阻塞在 dlg.exec(); 这行代码这里,点击 X 后,输出 QDebug

QT学习日记9——对话框_第2张图片

创建非模态对话框 

QT学习日记9——对话框_第3张图片

函数是不会阻塞在 dlg2->show(); 这句话这里,因为防止一闪而过,所以创建到堆区

同时我们要注意,这个函数申请内存后,没有释放内存,可能后面会出现内存泄漏

我们需要在 X 掉窗口的时候顺便释放内存,加入中间那行代码

QT学习日记9——对话框_第4张图片

二、系统提供好的对话框

2.1 标准对话框

所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框

Qt 的内置对话框大致分为以下几类:

QColorDialog:选择颜色

FileDialog:选择文件或者目录

FontDialog:选择字体

QInputDialog:允许用户输入一个值,并将其值返回

QMessageBox:模态对话框,用于显示信息、询问问题等

QPageSetupDialog:为打印机提供纸张相关的选项

QPrintDialog:打印机配置

QPrintPreviewDialog:打印预览

ProgressDialog:显示操作过程

2.2 消息对话框

参数1:父类指针

参数2:标题显示的内容

参数3:文本显示的内容

QT学习日记9——对话框_第5张图片

2.3 信息对话框

QT学习日记9——对话框_第6张图片

2.4 提问对话框 

QT学习日记9——对话框_第7张图片

文档中可以找到下面的这张表

QT学习日记9——对话框_第8张图片

修改两个按钮中的内容

QT学习日记9——对话框_第9张图片

修改默认选择项 

QT学习日记9——对话框_第10张图片

参数1:父类指针

参数2:标题

参数3:提示内容

参数4:按键类型

参数5:默认关联回车按键

函数有返回值,加上判断的语句

QT学习日记9——对话框_第11张图片

2.5 颜色对话框

QT学习日记9——对话框_第12张图片

 点击 OK 以后,函数得到返回值,并且跳转进主窗口

QT学习日记9——对话框_第13张图片

注意:

上面是把函数写在 connect 外面,会自动执行,函数可以和前面一样写在 connect 里面,触发条件成了以后就开始执行

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 

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

    connect(ui->actionnew, &QAction::triggered, [](){
        // 警告对话框
        // QMessageBox::warning(this, "warning", "警告");

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

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

2、 颜色对话框 QColor(255, 0, 0, 255) 还有第四个参数,默认是 255 也就是四个参数

2.6 文件对话框

传入参数:

参数1:父亲

参数2:标题

参数3:默认的打开路径

参数4:要打开的格式(过滤其他格式)

返回值:

Qstring、选择的文件路径

QT学习日记9——对话框_第14张图片

 QT学习日记9——对话框_第15张图片

2.6 字体对话框

添加头文件 #include  


接受返回值

QT学习日记9——对话框_第16张图片

去除引号 

QT学习日记9——对话框_第17张图片

三、登录窗口布局

3.1 组件的增加

QT学习日记9——对话框_第18张图片

QT学习日记9——对话框_第19张图片

 QT学习日记9——对话框_第20张图片

3.2 让组件对齐

1、方法一

QT学习日记9——对话框_第21张图片

不太灵活,调整起来不舒服

2、方法二

QT学习日记9——对话框_第22张图片

QT学习日记9——对话框_第23张图片

下图就完成了

QT学习日记9——对话框_第24张图片 

3、给主界面使用一个垂直对齐,并且加弹簧

QT学习日记9——对话框_第25张图片

4、修改弹簧为固定值

QT学习日记9——对话框_第26张图片

 

3.3 打破布局

觉得现在的布局不好,可以打破布局

QT学习日记9——对话框_第27张图片

右键 —> 布局 —> 打破布局

第二种方式打破布局:

QT学习日记9——对话框_第28张图片

 

3.4 栅格布局

QT学习日记9——对话框_第29张图片

 结果:

QT学习日记9——对话框_第30张图片

 

3.4 其他细微的调整

1、权重框大小

QT学习日记9——对话框_第31张图片

 运行结果:

QT学习日记9——对话框_第32张图片

 

2、修改窗口名

 QT学习日记9——对话框_第33张图片

 

3、设置窗口大小

QT学习日记9——对话框_第34张图片

 

4、限定长宽

QT学习日记9——对话框_第35张图片

 

5、调整组建到旁边的间隙

QT学习日记9——对话框_第36张图片

 

6、输入框显示

QT学习日记9——对话框_第37张图片

noEcho 是不显示输入的内容

password是后面这种效果

QT学习日记9——对话框_第38张图片

 

你可能感兴趣的:(QT,大数据)