[英]Looking for PyQt4 embeddable terminal widget
我寫了一個應用程序,除其他外,啟動一些“后端”進程來做一些事情。 這些子過程很可能會失敗或出現意外行為,因為它們必須在相當困難的條件下運行,所以我更願意完全控制它們給操作員。
注意:我使用基於subprocess
進程模塊的類而不是QProcess
運行這些進程,以便在運行進程中具有更多控制功能。
目前,我正在使用一個QPlainTextEdit
小部件,我從子QPlainTextEdit
附加標准輸出/錯誤,加上一些按鈕可以快速發送一些常見信號(INT,STOP,CONT,KILL,..),但是:
所以:有沒有人知道我可以用來完成這些需求的東西?
我找到了qtermwidget,但它似乎更傾向於處理shell進程(並且Python綁定似乎只允許你運行/bin/bash
),而不是與已經存在的進程I / O進行通信。
這樣的事情有幫助嗎?
#!/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_())
您可以嘗試QConsole(http://qconsole.sourceforge.net/)。 我沒有使用它,但它看起來像你正在尋找的那種東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.