如何调用永久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_())
任何建议?
答案 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中运行的命令)