目录
描述
创建
使用
点击弹出对话框
内存泄漏问题
自定义对话框
纯代码
界面操作
模态和非模态对话框
描述
对话框是 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 即可转变为 模态对话框啦
非模态对话框,就是之前我们所写的
模态对话框
陈年老故事