在 PyQt5 中嵌入终端

因此,我一直在尝试创建自己的终端,但事实证明,该终端非常故障且外观不专业。


然后我偶然发现了用于PyQt4的这段代码:


#!/usr/bin/env python

#-*- coding:utf-8 -*-


import sys

from PyQt4.QtCore import *

from PyQt4.QtGui import *



class embterminal(QWidget):


    def __init__(self):

        QWidget.__init__(self)

        self.process = QProcess(self)

        self.terminal = QWidget(self)

        layout = QVBoxLayout(self)

        layout.addWidget(self.terminal)

        #self.process.start(

                #'xterm',['-into', str(self.terminal.winId())])

        # Works also with urxvt:

        self.process.start(

                'urxvt',['-embed', str(self.terminal.winId())])



if __name__ == "__main__":

    app = QApplication(sys.argv)

    main = embterminal()

    main.show()

    sys.exit(app.exec_())

由于我的应用程序是用PyQt5编写的,因此我自然尝试将代码移植到PyQt5。我更改from PyQt4.QtCore import *

from PyQt4.QtGui import *为from PyQt5.QtCore import *

from PyQt5.QtGui import *并添加了from PyQt5.QtWidgets import *


然后,当我运行代码时,我意识到终端没有弹出。


我不知道为什么会发生这种情况,并且有解决方法吗?


我也想知道我是否可以在同一项目/文件中同时使用PyQt5和PyQt4。


交互式爱情
浏览 715回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python