引用楼主我要下载代码于2011-03-24 17:55发表的 请教窗体与Gui主线程的问题 :
假设程序正常运行时,只有一个简单的窗体A,此时只有一个GUI主线程,在这个主线程中有一个事件循环处理窗体上的事件。当此程序运行到某阶段时,弹出一个模态窗体B(书上说模态窗体是有其自己的事件循环的),此时模态窗体B是否会有一个对应的子线程处理其事件循环?
请教大虾们啦。
我对这些底层的东西不太了解,只针对我知道的说两点:
1. 模态窗体不一定有自己的事件循环
如果你使用的 QDialog::exec() 打开的模态窗体,则启动事件循环
如果你通过 dlg.setModal(true); dlg.show() 打开的模态窗体,则没有自己的事件循环
对与非模态窗体,没有自己的事件循环
2. 模态窗体的事件循环不会开新的线程来处理,而是在主线程内
(事件循环可以嵌套)
说的可能不太清楚,过两天我再想想,可能会写到blog中