class XTermWidget(QX11EmbedContainer): xterm_cmd = '/usr/bin/xterm' close_signal = Signal() def __init__(self, parent=None, script_path=None): # possible use os to do better justice to script path?? if script_path: xterm_cmd += " -e $SHELL -c 'source %s; $SHELL'" % os.path.abspath( script_path) super(XTermWidget, self).__init__(parent) self.setObjectName('XTermWidget') self._process = QProcess(self) self._process.finished.connect(self.close_signal) # let the widget finish init before embedding xterm QTimer.singleShot(100, self._embed_xterm) def _embed_xterm(self): args = ['-into', str(self.winId())] self._process.start(self.xterm_cmd, args) if self._process.error() == QProcess.FailedToStart: print("failed to execute '%s'" % self.xterm_cmd) def shutdown(self): self._process.kill() self._process.waitForFinished()
class XTermWidget(QX11EmbedContainer): xterm_cmd = '/usr/bin/xterm' close_signal = Signal() def __init__(self, parent=None): super(XTermWidget, self).__init__(parent) self.setObjectName('XTermWidget') self._process = QProcess(self) self._process.finished.connect(self.close_signal) # let the widget finish init before embedding xterm QTimer.singleShot(100, self._embed_xterm) def _embed_xterm(self): args = ['-into', str(self.winId())] self._process.start(self.xterm_cmd, args) if self._process.error() == QProcess.FailedToStart: print "failed to execute '%s'" % self.xterm_cmd def shutdown(self): self._process.kill() self._process.waitForFinished()