我正在为 Cocoa 应用程序开发一个插件,为了使用现有的 cpp 代码,我们决定通过 Objective-C++ 将 Cocoa 插件与我们现有的 Qt 项目结合起来,这需要大量学习但即将到来出色地。
无论如何,我被我目前的问题难住了。该插件的设计使得应用程序为我们提供了一个 NSWindow,其中包含两个 NSView。我们在这两个视图之一中放置了一个 QMacNativeWidget,并且那里的一切工作正常。我遇到的问题是,当我尝试从我们的插件中创建一个新的 QDialog() 时,QDialog 总是在包含插件的 NSWindow 后面。
无论我是否 raise() 新的 QDialog,NSWindow 总是在前面,即使它立即失去 QDialog 的键盘焦点。如果我移动 NSWindow,我可以看到它后面的 QDialog,但即使我点击它的标题栏并移动它,它仍然在 NSWindow 后面。
只是想知道是否有人在混合 NSWindows 和 QDialogs 时遇到过类似的问题,以及是否有任何可能的解决方案,除了将我的 QDialog 包装在另一个 QMacNativeWidget 中,然后将它放在另一个 NSWindow 中,我宁愿不必这样做,因为我有许多对话框。
谢谢。