本文学习自 狄泰软件 唐佐林老师的 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

最低0.47元/天 解锁文章
3029

被折叠的 条评论
为什么被折叠?



