c++ - 在 Qt 中如何将模态对话框窗口转换为非模态对话框窗口?

标签 c++ qt loops exec show

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

我必须将这些窗口转换为非模态对话窗口

这里是我项目的示例代码示例。当 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());

并在该插槽函数中接收对话数据。

关于c++ - 在 Qt 中如何将模态对话框窗口转换为非模态对话框窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407895/

相关文章:

c++ - 在模板实现文件中使用命名空间

c++ - 从 Qt 中的文件获取相对路径

.net - 先学什么——C++/STL/QT 或 .NET/C#——如果我的学习和工作时间有限?

python - 迭代列表以生成列表中元素的所有可能组合?

c# - 视觉 C++ : function definition for 'mouse_event' not found

c++ - 我如何在 C++ 中更改文件名

c++ - 测量 C++ 中并发代码使用的内存消耗

Fedora 上的 Qt Creator 25 : "No valid kits found"

java - Java中的UDP线程无限循环

c - 在 C 中使用带有数组的循环