当前位置:网站首页>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、选择的文件路径
边栏推荐
- 大消费企业怎样做数字化转型?
- RedHat 6.2 configuring ZABBIX
- Golang单元测试、Mock测试以及基准测试
- Play with fancy special effects. This AE super kit is for you
- [RT thread] NXP rt10xx device driver framework -- pin construction and use
- [UE4] brush Arctic pack high quality Arctic terrain pack
- [combinatorics] recursive equation (definition of general solution | structure theorem of general solution of recursive equation without multiple roots)
- Cross border e-commerce: advantages of foreign trade enterprises in overseas social media marketing
- 设计电商秒杀
- 【RT-Thread】nxp rt10xx 设备驱动框架之--rtc搭建和使用
猜你喜欢

SWM32系列教程4-端口映射及串口应用

Leetcode: lucky number in matrix

kubernetes资源对象介绍及常用命令(四)

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

Why is WPA3 security of enterprise business so important?

Design e-commerce spike

29:第三章:开发通行证服务:12:开发【获得用户账户信息,接口】;(使用VO类包装查到的数据,以符合接口对返回数据的要求)(在多处都会用到的逻辑,在Controller中可以把其抽成一个共用方法)

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

【RT-Thread】nxp rt10xx 设备驱动框架之--Audio搭建和使用

Simple use of unity pen XR grab
随机推荐
RDS数据库的监测页面在哪看?
29: Chapter 3: develop Passport Service: 12: develop [obtain user account information, interface]; (use VO class to package the found data to meet the requirements of the interface for the returned da
Examination questions for the assignment of selected readings of British and American Literature in the course examination of Fujian Normal University in February 2022
数仓任务里面 跑SQL任务的时候用的数据库账号是在哪里配置的
線程池:業務代碼最常用也最容易犯錯的組件
How to judge the region of an IP through C?
Host based intrusion system IDS
vs code 插件 koroFileHeader
visual studio “通常每个套接字地址(协议/网络地址/端口)只允许使用一次“
Take you to API development by hand
UCORE overview
Rsync remote synchronization
September, 19, "cam principle and application" online assignment [Full Score answer]
Meituan side: why does thread crash not cause JVM crash
Solution to long waiting time of SSH connection to remote host
kubernetes资源对象介绍及常用命令(四)
Deep understanding of grouping sets statements in SQL
Luogu: p1155 [noip2008 improvement group] double stack sorting (bipartite graph, simulation)
Javescript variable declaration -- VaR, let, const
Where is the database account used when running SQL tasks in data warehouse tasks configured
https://www.bilibili.com/video/BV1g4411H78N?spm_id_from=333.337.search-card.all.click&vd_source=0471cde1c644648fafd07b54e303c905