我有多个QDialog窗口。所有窗口都是使用exampleWindow->exec()创建的。这导致当时仅打开一个窗口。

我必须将这些窗口转换为non-modal dialog window
这里是我的项目的示例代码示例。当exec()使用时,系统将进入循环并等待用户在窗口上执行某些操作。

int result = exampleWindow->exec();

if ( exampleWindow== QDialogButtonBox::Ok )
{
    exampleWindow->UpdateCalibrationData(&data);
    exampleWindow->UpdateFilterData(&filterData);
    SetCalibrationStatusToSuccess();
}

但我想将此转换为这样:
exampleWindow->show();
// and I need to some loop here for the wait answer of dialog

最佳答案

您可以使用以下方式创建非模式对话框

exampleWindow->show();

用户关闭对话框后,可以获取对话框发出的信号:
QObject::connect(&exampleWindow, SIGNAL(accepted()), this, SLOT(doSomething());

并在该插槽功能中接收对话框数据。

09-06 12:28