当前位置:网站首页>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、选择的文件路径
边栏推荐
- Great changes! National housing prices fell below the 10000 yuan mark
- 手把手带你入门 API 开发
- [RT thread] NXP rt10xx device driver framework -- Audio construction and use
- Talk about several methods of interface optimization
- HP 阵列卡排障一例
- [combinatorics] recursive equation (general solution structure of recursive equation with multiple roots | linear independent solution | general solution with multiple roots | solution example of recu
- Unity notes unityxr simple to use
- Online assignment 3 of mobile Internet technology in the 20th autumn of electronic technology [standard answer]
- Define a structure fraction to represent a fraction, which is used to represent fractions such as 2/3 and 5/6
- Squid service startup script
猜你喜欢
PS screen printing brush 131, many illustrators have followed suit
The most complete postman interface test tutorial in the whole network, API interface test
Take you to API development by hand
Test your trained model
Bcvp developer community 2022 exclusive peripheral first bullet
鸿蒙第三次培训
Swm32 series Tutorial 4 port mapping and serial port application
新库上线 | CnOpenData中国保险机构网点全集数据
Free data | new library online | cnopendata complete data of China's insurance intermediary outlets
Why is WPA3 security of enterprise business so important?
随机推荐
Static program analysis (I) -- Outline mind map and content introduction
BYD and great wall hybrid market "get together" again
C language modifies files by line
How SVN views modified file records
Simple configuration of postfix server
kubernetes资源对象介绍及常用命令(五)-(NFS&PV&PVC)
手把手带你入门 API 开发
定义一个结构体Fraction,表示分数,用于表示 2/3, 5/6这样的分数
One brush 144 force deduction hot question-1 sum of two numbers (E)
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
Thread pool: the most common and error prone component of business code
静态程序分析(一)—— 大纲思维导图与内容介绍
Talk about several methods of interface optimization
SWM32系列教程4-端口映射及串口应用
Great changes! National housing prices fell below the 10000 yuan mark
Kubernetes resource object introduction and common commands (4)
Kotlin学习快速入门(7)——扩展的妙用
Kubernetes resource object introduction and common commands (III)
Where is the monitoring page of RDS database?
Online assignment 3 of mobile Internet technology in the 20th autumn of electronic technology [standard answer]