如何调用一个永久的 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_())
有什么建议吗?
最佳答案
不要使用os.system
。使用 subprocess
>>> import subprocess
>>> subprocess.Popen(['xterm'])
虽然您最好从 subprocess
获取输出而不涉及 xterm
。
>>> process = subprocess.Popen(['lsusb'], shell=False, stdout=subprocess.PIPE)
>>> process.communicate()[0]
注意 shell=False
。这就是您从 lsusb
命令读取输出的方式。
如果您正在寻找关于subprocess
的教程,this很好。
关于python - 使 xterm 窗口打开直到它被用户关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4173632/