使xterm窗口打开,直到用户关闭它

时间:2010-11-13 16:57:43

标签: python linux pyqt

如何调用永久xterm窗口,只有当用户关闭它时它才会关闭?

这是将重新创建此问题的代码

import os
from PyQt4 import QtCore, QtGui
from main import Ui_MainWindow

class Main(QtGui.QMainWindow):
    def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)

        QtCore.QObject.connect(self.ui.pushID, QtCore.SIGNAL('clicked()'), self.showid)

    def showid(self):
        process = subprocess.Popen(['lsusb'], shell=False, stdout=subprocess.PIPE)
        process.communicate()[0]

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())

任何建议?

2 个答案:

答案 0 :(得分:4)

请勿使用os.system。使用subprocess

>>> import subprocess
>>> subprocess.Popen(['xterm'])

虽然您最好从[{1}}获取输出而不涉及subprocess

xterm

请注意>>> process = subprocess.Popen(['lsusb'], shell=False, stdout=subprocess.PIPE) >>> process.communicate()[0] 。这是您从shell=False命令读取输出的方法。

如果您正在寻找lsusb的教程,this很好。

答案 1 :(得分:0)

这是一个老问题,但OP在这种情况下想要的是:

import subprocess
subprocess.Popen(['xterm','-hold','-title','Usb Devices Available','-geometry','80x30+2000+0','-e','lsusb'])

-hold(执行后保持xterm窗口打开)
-title(xterm窗口中的名称)没有-title窗口采用所执行命令的名称,在本例中为lsusb
- 几何(终端宽度,高度,水平位置,垂直位置)
-e(此后的所有内容都是运行的命令)
lsusb(我希望在xterm中运行的命令)