模态与非模态的区别

一、Dialog(对话框窗口)

Dialog窗口分为模态与非模态两种。所谓模态对话框,就是会阻塞同一应用程序中其它窗口的输入,与之相反的是非模态对话框。


设置模态对话框可以通过设置事件循环exec()来达到。


也有另外的解释: 所谓的模态Dialog就是将当前线程放入阻塞队列,所谓的非模态Dialog就是再创建一个线程专门用来显示对话框。


对于建立在堆上的Dialog,有两种释放方法,一种自己手动释放,另外一种通过setAttribute(Qt::Wa_DeleteOnClose)函数自动释放。


建立在栈上的Dialog会随着函数的调用结束而退出作用域,被析构,所以Dialog会闪现。


对话框是一个独立的窗口,需要有自己的事件循环,接受用户响应。

你可能感兴趣的:(qt)