不二如是 发表于 2016-9-21 17:02:01

2-模态和非模态对话框

本帖最后由 不二如是 于 2016-9-22 11:26 编辑



本程序是第二种创建方法,流程如下







关于方法一、二、三的一些说明

方法一
在MyWidget类的构造函数中定义了一个QDialog类对象,并制定dialog的父窗口为MyWidget类对象,就是那个this参数

最后调用show()函数让其显示

此时程序一闪而过,然后就显示MyWidget()类对象的窗口了

为啥呢?

**** Hidden Message *****

为了解决这个问题,引入方法二、方法三

方法二

使用了QDialog对象的指针,并使用new运算符创建内存空间,此时便可正常显示两个窗口。

注意阿

QDialog dialog 可以说成定义一个对象

QDialog *dialog是定义了一个指向QDialog类对象的指针变量(后面也会说成是定义了一个QDialog对象)

补充一点

这里为dialog对象指明了父窗口(this),所以就没必要使用delete来释放对象

方法三

此时运行程序后,发现对话框弹出来了

但MyWidget类对象没有出来

关闭对话框后,MyWidget类对象的窗口才弹出来

此时这个就叫做模态对话框

而方法二就是非模态。

关于模态与非模态说明

打开方法二注释行,即添加 dialog->setModal(true);

在show()函数前面使用setModal()函数即可将非模态变为模态

那么到底什么模态、非模态呢?

很简单

模态就是在没有关闭该对话框前,不能再与同一个应用程序的其他窗口进行交互

非模态,就是非模态啦。。。。。。。。。

好吧,非模态就是能与其他窗口进行交互,爱关闭就关闭,爱干嘛干嘛


**** Hidden Message *****

~风介~ 发表于 2016-9-21 20:20:05

有时间的话,弄个视频教程,受众更多哦!

~风介~ 发表于 2016-9-21 20:21:04

btw,你的头像什么时候会动了,吓我一跳。{:10_305:}

不二如是 发表于 2016-9-22 08:29:44

~风介~ 发表于 2016-9-21 20:20
有时间的话,弄个视频教程,受众更多哦!

视频确实不方便。。。在办公室不敢太嚣张

不二如是 发表于 2016-9-22 08:30:10

~风介~ 发表于 2016-9-21 20:21
btw,你的头像什么时候会动了,吓我一跳。

哈哈哈,是不是很酷炫{:10_256:}

~风介~ 发表于 2016-9-22 09:09:31

不二如是 发表于 2016-9-22 08:30
哈哈哈,是不是很酷炫

来人啊!把这个妖人拖出去,斩了!{:10_250:}

不二如是 发表于 2016-9-22 09:10:38

~风介~ 发表于 2016-9-22 09:09
来人啊!把这个妖人拖出去,斩了!

{:10_278:}{:10_278:}{:10_278:}

bhsx 发表于 2016-10-14 14:36:10

{:5_92:}

不二如是 发表于 2016-10-14 14:39:58

bhsx 发表于 2016-10-14 14:36


{:10_268:}

zhangylnj 发表于 2016-11-17 23:16:49

tkinter中如何实现有模与非模?

紫月星云 发表于 2017-2-27 22:24:58

谢谢不二版主

Yujiantianm 发表于 2017-2-28 21:03:46

{:5_108:}

syxwange001 发表于 2017-3-17 12:35:42

thanks

小剑剑 发表于 2017-3-30 19:14:05

是不是因为构建函数推出,对象自动销毁空间释放

X-D 发表于 2017-4-10 23:43:14

感谢不二

pabc53 发表于 2017-9-19 23:25:53

学习

qq64765940 发表于 2017-10-20 22:08:32

支持不二

SylarPu 发表于 2017-11-29 14:20:18

学习一下

太别致旳温柔 发表于 2018-4-16 23:01:59

好文章啊

SylarPu 发表于 2018-5-22 11:44:22

为何突然用C++了
页: [1] 2
查看完整版本: 2-模态和非模态对话框