QT exec() 命令崩溃

QT exec() command crash

我正在 QT 4.7.3 中开发应用程序。使用 mexFunction (*.mexw32)

从 Matlab(simulink) 调用此应用程序

当我尝试使用 dialog.exec() 命令打开对话框时,显示了表单,但我得到了 "non responding application" 瞬间。之后,matlab 崩溃了。

如果我尝试使用 dialog.show() 命令打开对话框,它工作正常。

我真的不知道发生了什么,因为这两个命令有些相似,如 described here

有谁知道发生了什么事吗?

dialog.exec() 旋转一个本地事件循环,该循环与 Matlab 本身正在旋转的循环不能很好地集成。因此崩溃。相反,只要它自己的事件循环与 Qt 的要求兼容,您就可以指望 Matlab 做正确的事情。不幸的是,这并不适用于所有平台,尽管在 Windows 上似乎有效。

无论如何,你不应该在 main 之外使用 exec()