现有一个可通过Bash终端使用的环境和框架,我想要创建一个GUI。我的设想如下:
- 在Bash会话中,设置框架环境。这将导致会话中设置了从环境变量到身份验证的所有内容。
- 运行Python GUI脚本,以便包装现有会话并使其更容易运行后续步骤。
- GUI出现,一侧显示嵌入式终端中的Bash会话,另一侧显示对应于可以在现有框架环境中运行的各种命令的一组按钮。
- 可以在GUI中按下按钮,导致运行某些Bash命令。运行结果显示在嵌入式终端中。
如何创建这样的GUI呢?我意识到与现有环境交互可能会很棘手。如果特别棘手,我可以在GUI的会话中重新创建环境。无论如何,GUI如何与嵌入式终端交互?按下GUI按钮时,如何运行并在嵌入式终端中显示命令?
GUI的基本启动(具有嵌入式终端)如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
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_())
我怎样才可以在GUI按下按钮后,在这个嵌入式终端上运行
top
?