Qt-窗口对话框相关操作(50)

目录

描述

创建

使用

点击弹出对话框

内存泄漏问题

自定义对话框

纯代码

界面操作

模态和非模态对话框


描述

        对话框是 GUI 程序中不可或缺的组成部分。⼀些不适合在主窗⼝实现的功能组件可以设置在对话框中。对话框通常是⼀个顶层窗⼝,出现在程序最上层,⽤于实现短期任务或者简洁的⽤⼾交互。Qt常⽤的内置对话框有:QFiledialog(⽂件对话框)、QColorDialog(颜⾊对话框)、QFontDialog(字体对话框)、QInputDialog(输⼊对话框)和 QMessageBox(消息框)。

创建

创建很简单,只需要在 继承 夫元素对象中选择 Dialog 即可,不过通常我们并不是直接创建的,而是在代码中通过代码来创建,通过各种信号来触发对话框

 选中之后,其他的也会随之发生改变

在属性栏中,会发现 QDialog除了基础了 QWidget 的属性,还有着自己独特的几个属性,后序详细介绍这些属性

 

运行后发现,和我们创建的空白 QWidget 没有什么很大的区别,除了名字还有右上角的选项发生了变化之外,其余的目测是一样的

 

 

 

使用

点击弹出对话框

使用如下,因为QDialog 继承了 QWidget 的属性,所以我们也可以使用 QWidget 的属性来给 QDialog 修饰

内存泄漏问题

假如我们直接在后面的代码中添加 delete 操作,显然这是不行的,执行完 show 显示任务,就会立马释放,从而导致 对话框 一闪而过

内存泄漏正确解决方法

如下就能够很好的解决 对话框 的内存泄漏问题了 

 

自定义对话框

纯代码

首先我们添加一个 C++ 类

如下创建一个 Dialog 类 

首先我们看到,使用自定义的类是成功创建出来 对话框 了,下面我们向对话框里面添加 控件

如下添加完之后的代码,正常运行是没有问题的

dialog.cpp

dialog.h 

 

mainwindow.cpp

界面操作

我们需要新建一个 UI 文件类

这里我们可以选择模板,这里我是直接选择了 空白的对话框  

选择继承的类,不过我们直接使用默认的就好啦,因为 qt 这一点帮我们继承好了相应的类

 如同我们就多了一个 ui 文件,我们直接使用这个文件即可

dailog.ui 

mainwindow.cpp

dialog.cpp

这样就可以正常使用啦

 

模态和非模态对话框

模态和非模态,这两个只有将最后的显示换成 exec 即可转变为 模态对话框啦

非模态对话框,就是之前我们所写的

模态对话框

陈年老故事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风玉骨

爱了!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值