当前位置:网站首页>QT学习日记9——对话框
QT学习日记9——对话框
2022-07-03 17:16:00 【herb.dr】
学习视频链接
目录
一、自定义对话框
1.1 模态对话框:
不可以对其他窗口进行操作
1.2 非模态对话框:
可以对其他的窗口进行操作
1.3 案例
下图是非模态对话框

在界面中打开窗口后,可以对原来的界面进行修改
模态对话框
运行弹窗的时候,函数阻塞在 dlg.exec(); 这行代码这里,点击 X 后,输出 QDebug

创建非模态对话框

函数是不会阻塞在 dlg2->show(); 这句话这里,因为防止一闪而过,所以创建到堆区
同时我们要注意,这个函数申请内存后,没有释放内存,可能后面会出现内存泄漏
我们需要在 X 掉窗口的时候顺便释放内存,加入中间那行代码

二、系统提供好的对话框
2.1 标准对话框
所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必要在每一个程序中都自己实现这么一个对话框
Qt 的内置对话框大致分为以下几类:
QColorDialog:选择颜色
FileDialog:选择文件或者目录
FontDialog:选择字体
QInputDialog:允许用户输入一个值,并将其值返回
QMessageBox:模态对话框,用于显示信息、询问问题等
QPageSetupDialog:为打印机提供纸张相关的选项
QPrintDialog:打印机配置
QPrintPreviewDialog:打印预览
ProgressDialog:显示操作过程
2.2 消息对话框

2.3 颜色对话框

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

注意:
1、2.2 和 2.3 的函数可以写在 connect 里面
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
#include <QDebug>
#include <QMessageBox>
#include <QColorDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionnew, &QAction::trigger, [](){
// 警告对话框
// 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.4 文件对话框
传入参数:
this:父亲
...:标题
...:默认的打开路径
...:要打开的格式(过滤其他格式)
返回值:
Qstring、选择的文件路径
边栏推荐
- 一位普通程序员一天工作清单
- How to delete a specific line from a text file using the SED command?
- On Lagrange interpolation and its application
- Kubernetes resource object introduction and common commands (III)
- STM32H7 HAL库SPI DMA发送一直处于busy的解决办法
- PS screen printing brush 131, many illustrators have followed suit
- [2. Basics of Delphi grammar] 2 Object Pascal data type
- Thread pool: the most common and error prone component of business code
- 手把手带你入门 API 开发
- [error reporting] omp: error 15: initializing libiomp5md dll, but found libiomp5md. dll already initialized.
猜你喜欢

Design e-commerce spike

免费数据 | 新库上线 | CnOpenData中国保险中介机构网点全集数据

UE4 official charging resources, with a total price of several thousand

Select 3 fcpx plug-ins. Come and see if you like them

Kotlin learning quick start (7) -- wonderful use of expansion

Golang单元测试、Mock测试以及基准测试

Free data | new library online | cnopendata complete data of China's insurance intermediary outlets

Why is WPA3 security of enterprise business so important?

Build your own website (23)

【RT-Thread】nxp rt10xx 设备驱动框架之--hwtimer搭建和使用
随机推荐
RF analyze demo build step by step
Swm32 series Tutorial 4 port mapping and serial port application
Where is the database account used when running SQL tasks in data warehouse tasks configured
Where is the monitoring page of RDS database?
One brush 148 force deduction hot question-5 longest palindrome substring (m)
Take you to API development by hand
Dagong 21 autumn "power plant electrical part" online operation 1 [standard answer] power plant electrical part
Golang单元测试、Mock测试以及基准测试
Svn full backup svnadmin hotcopy
Electronic technology 20th autumn "Introduction to machine manufacturing" online assignment 3 [standard answer]
How to promote cross department project collaboration | community essay solicitation
Simple use of unity pen XR grab
C语言按行修改文件
Depth first search of graph
Pools de Threads: les composants les plus courants et les plus sujets aux erreurs du Code d'affaires
September, 19, "cam principle and application" online assignment [Full Score answer]
【RT-Thread】nxp rt10xx 设备驱动框架之--hwtimer搭建和使用
The largest matrix (H) in a brush 143 monotone stack 84 histogram
Qt调节Win屏幕亮度和声音大小
Talk about several methods of interface optimization
https://www.bilibili.com/video/BV1g4411H78N?spm_id_from=333.337.search-card.all.click&vd_source=0471cde1c644648fafd07b54e303c905