在 PySide (Qt) 中打开另一个程序并在原始窗口中显示

Posted

技术标签:

【中文标题】在 PySide (Qt) 中打开另一个程序并在原始窗口中显示【英文标题】:Opening another program in PySide (Qt) and displaying inside the original window 【发布时间】:2012-12-22 21:36:58 【问题描述】:

我有一个 PySide 应用程序。我想创建一个小部件,我将在其中显示另一个应用程序(例如 SFML/Irrlicht/Ogre/whatever 游戏,它将是独立的 .exe 而不是 python 脚本),并且该小部件将充当该进程的主窗口。这可能吗?

我不需要与该应用程序进行任何通信,我将通过套接字进行。

【问题讨论】:

【参考方案1】:

到目前为止,最简单的方法是使用 python 的 os.spawn、os.system 或 subprocess 模块来启动第二个进程。它将在独立于您的应用程序的自己的窗口中启动。'

如果你真的想在你的主窗口中嵌入子进程,有几个选项。 查看此问题的答案:Subprocess as QT widget

【讨论】:

但我希望它在我的 PySide 窗口内。 我明白了——我误解了“子窗口”。您能否在问题中进一步澄清一下?这是 MDI 吗? 是的。看看这张随机编辑照片:forum.computerbild.de/attachments/pc-spiele/…。它是 gui 应用程序(由 wx/qt/winapi/类似的东西管理)并且在渲染运行时它具有子窗口 - 它是一个单独的进程。而且我不知道什么是 MDI,但我希望我的问题现在得到澄清。

以上是关于在 PySide (Qt) 中打开另一个程序并在原始窗口中显示的主要内容,如果未能解决你的问题,请参考以下文章

PySide / PyQtGraph 访问主 Qt 事件线程

在当前文件中按下按钮后,如何打开另一个 qt 设计器文件?

在 PySide 中使用 QtHostinfo.lookupHost

将 PySide/PyQt 小部件嵌入到 Qt/C++ 应用程序中

在一个控制台程序中CreateProcess启动另一个控制台程序,新启动的程序输出在原程序的控制台窗口中

Qt - pyside - saveGeometry() saveState()