QT17 - 对话框及其类型 QDialog

本文学习自 狄泰软件 唐佐林老师的 QT课程。


QDialog是QT中所有对话框的基类,QDialog继承于QWidget 是一种容器类型的组件,QDialog 对象 只能 必须 作为顶层的窗口而存在,不能作为子部件嵌入其他容器中,QDialog是定制了窗口样式的特殊的 QWidget。而QDialog 与 QWidget的区别也就是, QDialog 只能 作为顶层的窗口,而QWidget不是。

QDialog可以创建:

1 模态对话框: 阻塞式对话框,在栈上创建,显示后 无法与父窗口交互,一直位于顶层

QDialog::exec() ,创建模态对话框,注意在栈上创建 QDialog对象
只有模态对话框 有返回值概念,表示交互结果
QDialog::done(int i) :关闭对话框,并将参数作为交换结果
参数为:Accepted :用户操作成功
参数为:Rejected  :用户操作失败
具体值:其他

2 非模态对话框:非阻塞式对话框,在堆上创建,显示后,可以与父窗口交互

QDialog* dialog = new QDialog(this); 注意在堆上创建 QDialog对象,并指定父子关系,指定父组件,这样组件会一直在父组件上
Qt::WA_DeleteOnClose :需要设置 属性 释放资
QDialog::show() 
可以与父组件交互,需要设置父组件this,才会一直位于父组件上面

3 混合态对话框 : 程序不阻塞,但是对话框阻塞,显示后无法与父窗口进行交互

Qt::WA_DeleteOnClose :需要设置 属性 释放资
       QDialog::setModal(true);//设置混合特性对话框属性,创建 混合态对话框。
       QDialog::show();

实验 :QDialog 模态,非模态,混合态 对话框 使用

头文件:

#ifndef DIALOG_H
#define DIALOG_H
#includ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值