首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Qt中将模式对话框窗口转换为非模式对话框窗口?

如何在Qt中将模式对话框窗口转换为非模式对话框窗口?
EN

Stack Overflow用户
提问于 2015-07-14 21:21:49
回答 2查看 8.1K关注 0票数 1

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

我必须将这些窗口转换为non-modal dialog window

下面是我的项目的示例代码示例。当exec()正在使用时,系统将进入循环,等待用户在窗口上执行某些操作。

代码语言:javascript
复制
int result = exampleWindow->exec();

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

但是我想把这个转换成这样:

代码语言:javascript
复制
exampleWindow->show();
// and I need to some loop here for the wait answer of dialog
EN

回答 2

Stack Overflow用户

发布于 2015-07-14 21:30:51

可以使用以下命令创建非模式对话框

代码语言:javascript
复制
exampleWindow->show();

用户关闭对话框后,您可以获得对话框发出的信号:

代码语言:javascript
复制
QObject::connect(&exampleWindow, SIGNAL(accepted()), this, SLOT(doSomething());

并在该时隙函数中接收对话数据。

票数 8
EN

Stack Overflow用户

发布于 2015-07-14 21:29:40

我没有足够的名气来发表评论。但是,如果使用QDialog,您可以只调用myDialog->show(),如果您将对话框作为成员变量,则它只能有一个打开的自身实例。如果你想做一些非模态的东西,你可以在该对话框上设置一个设置或标志。

代码语言:javascript
复制
    QDialog::show();
    QDialog::setModal();

如果你看过文档的话。你能把你的问题说得更清楚一点吗?你的实际问题是什么?或者这只是你想要的QDialog显示方式的偏好。正如我上面的帖子所示,您可以检查信号和插槽,查看对话框是否已关闭/接受。

使用起来更好

QObject::connect(obj, &Class::signal, obj, &Class::slot) -如果信号和插槽不能连接,这会给编译器带来错误。

connect(obj, SIGNAL(), obj, SLOT()) - where,因为这只会给你一个运行时错误。但不会崩溃或输出警告,只会继续。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31407895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档