QDialog :: exec()阻止应用程序

Mis*_*tyD 4 c++ qt

我目前有一个formA,它使用从QDialog继承的另一个表单请求用户输入.使用QDialog :: exec提示表单.现在问题是formA会有多个实例,因此每当formA打开另一个表单时,整个应用程序都会阻塞另一个表单.目前我有这样的东西

if(formUserInputRequired->exec()==1) //Block until the user selects from a form
{
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让QDialog :: exec不阻塞整个应用程序我只是希望它只阻止它被调用的形式的实例或类似的东西,但绝对不是整个应用程序?

更新:我不需要阻止窗口.但是,我想知道用户何时完成另一种形式的输入,以便原始表单可以处理该数据

kol*_*kol 8

setWindowModality使用Qt::WindowModal参数作为参数调用对话框上的方法.

Qt::NonModal          0  The window is not modal and does not block input to other windows.
Qt::WindowModal       1  The window is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
Qt::ApplicationModal  2  The window is modal to the application and blocks input to all windows.
Run Code Online (Sandbox Code Playgroud)

资源