Qt QDialog::show之后再QDialog::exec
QDialog::show() 是非模态窗口;
但是之后再调用 QDialog::exec() 是可以获得他的返回值的.并且可以堵塞程序防止析构函数关闭...这是为什么呢.
例如 我在某个函数调用里面,构造一个栈对象 QDialog dlg;
我需要一个非模态窗口.
那么我调用 dlg.show();
我还需要这个dlg的返回值.
那么我 int ret = dlg.exec();
等待函数返回...
但是,它并不会阻塞我这个函数的返回...
我对这个函数多次调用,还是可行的.
同时,我的dlg.exec() 返回时,还是会从当前位置返回,(可以中断在该位置.)
问题1: 既然show是非模态的. 那么为什么exec可以堵塞dlg的析构?
问题2: 在这个情况下的exec(),到底通过什么方式,不会阻塞调用函数的呢?