4. Qt对话框(1)
本节主要介绍对话框类别和其确认与取消的实现
本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频]
1 对话框
1.1 对话框类型
对话框主要有两种:模态对话框和非模态对话框。
- 模态对话框打开后,不能与同一个应用程序的其他对话框进行交互,直到模态对话框关闭,用exec()显示。
- 非模态对话框打开后,用户既可以和该对话框交互,也可以和同应用程序的其他对话框进行交互,用show()显示。
1.2 对话框的确认与取消
(1)对话框的确认与取消有相应的槽函数和信号,如下:
(2)实现一个登录对话框
- 接上节的HellowWorld工程,在该项目文件中新建一个登录LoginDialog对话框,需要实现功能如下图描述
- 在mainwindow中新建按钮“显示对话框”,并转到槽。同时在mainwindow.h文件中加上#include <logindialog.h>引入登录对话框的头文件,创建logindialog的成员函数,并在mainwindow.cpp中完善相应代码(以上步骤和上节2.2 添加并显示界面中步骤一致,只是对话框名字不同)
- 给新加的按钮返回结果nResult赋初值,并加上断点按F5调试,看该值变化
初值为-1,继续F5
点击OK按钮,nResult值变为1
点击cancel,nResult变为0
调试结果返回值,与表中一致
(3)使用自定义按钮和槽函数实现对话框确认和取消
- 删除logindialog.ui中的默认按钮,并重新添加两个按钮“确认”和“取消”,新建两个按钮的槽函数
- 再次调试,看nResult的值变化。初始值为-1,点击确认,返回值为1;点击拒绝,返回值为0。与表中一致
(4)使用自定义按钮和connect实现对话框确认和取消
修改代码,然后重新进行上述断点调试,观察nResult值的变化,发现nResult变化与表中一致。