python - 在 PyQt 中,如何将终端嵌入到窗口中?

标签 python macos pyqt xterm

我有一个小脚本,旨在将 xterm 嵌入到 PyQt GUI 中。在 Linux 上,它可以工作,创建一个像这样的 GUI:

但是,在 OS X 上运行相同的脚本会产生两个这样的窗口:

有谁知道如何解决这个问题并防止 OS X 搞砸 GUI?

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class embeddedTerminal(QWidget):

    def __init__(self):
        QWidget.__init__(self)
        self.resize(800, 600)
        self.process = QProcess(self)
        self.terminal = QWidget(self)
        layout = QVBoxLayout(self)
        layout.addWidget(self.terminal)
        self.process.start('xterm', ['-into', str(self.terminal.winId())])

if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = embeddedTerminal()
    main.show()
    sys.exit(app.exec_())

最佳答案

你可以看看 qtconsole Jupyter 的前端并尝试使用 bash kernel .根据您的最终目标,我知道可以嵌入 IPython kernel , 在另一个应用程序中。

关于python - 在 PyQt 中,如何将终端嵌入到窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33259533/

相关文章:

python - 使用 pyqt5 拖放(SIGNAL)

python - PyQt5 布局的不等部分

python - 从列表中删除所有重复项 - 不保留重复项的实例

html - Mac 上浏览器之间的字体大小不一致

xcode - XCode中没有“转到最后一个编辑位置”快捷方式吗?

macos - 如何在 Mac OS 上使用 date 命令获取当前星期几?

python - 如何从主窗口打开子窗口

python - PyQt --> addItem --> 类型错误 : arguments did not match any overloaded call:

python - 是否可以使用服务主体通过 Azure Python SDK 方法 get_client_from_auth_file 返回 KeyVaultClient?

python - 如何修复 selenium "DevToolsActivePort file doesn' t 在 Python 中存在“异常”