def __init__(self, parent=None): super(ControlMainWindow, self).__init__(parent) self.settings = QtCore.QSettings() self.ui = Ui_MainWindow() self.ui.setupUi(self) #self.print_text('Aguardando entrada de dados...') self.ui.filechooser.clicked.connect(self.choose_file) self.ui.runner.clicked.connect(self.run) self.ui.openLink.clicked.connect(self.open_link) self.ui.openFolder.clicked.connect(self.open_folder) self.setWindowIcon(QtGui.QIcon('logo.png')) last_file = self.settings.value('lastFile', None) if last_file: self.ui.input.setPlainText(last_file)
class ControlMainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(ControlMainWindow, self).__init__(parent) self.settings = QtCore.QSettings() self.ui = Ui_MainWindow() self.ui.setupUi(self) #self.print_text('Aguardando entrada de dados...') self.ui.filechooser.clicked.connect(self.choose_file) self.ui.runner.clicked.connect(self.run) self.ui.openLink.clicked.connect(self.open_link) self.ui.openFolder.clicked.connect(self.open_folder) self.setWindowIcon(QtGui.QIcon('logo.png')) last_file = self.settings.value('lastFile', None) if last_file: self.ui.input.setPlainText(last_file) #self.output_folder = '/tmp/teste-01/' #self.output_folder = u'C:\\a paça\\exemplo\\teste-01\\' #self.ui.resultsWidget.setDisabled(False) def print_text(self): try: s = str(self.process.readAllStandardOutput()) except: s = "" try: self.ui.out.insertPlainText( s ) except: print_error("(String não capturada)") def print_error(self): s = str(self.process.readAllStandardError()) msg = "<br><p style='color: red; font-weight: bold'>%s</p>" % s.replace('\n', '<br>') self.ui.errors.insertHtml(msg) def clearOutputs(self): self.ui.out.setPlainText(''); self.ui.errors.setPlainText(''); self.ui.statusbar.clearMessage() def get_output_folder(self): if 'win' in sys.platform.lower(): return 'file:///' + self.output_folder.replace('\\', '/') else: return 'file://' + self.output_folder def open_link(self): path = self.get_output_folder() + 'index.html' print path QtGui.QDesktopServices.openUrl(QtCore.QUrl(path, QtCore.QUrl.TolerantMode)) def open_folder(self): path = self.get_output_folder() QtGui.QDesktopServices.openUrl(path) def run(self): self.clearOutputs() self.ui.resultsWidget.setDisabled(True) self.current_file = self.ui.input.toPlainText() self.ui.runner.setDisabled(True) self.ui.runner.setText('Aguarde, processando...') self.ui.statusbar.showMessage('Aguarde, processando...') self.process = QtCore.QProcess(self) self.process.readyReadStandardOutput.connect(self.print_text) self.process.readyReadStandardError.connect(self.print_error) self.process.finished.connect(self.finished) if 'win' in sys.platform.lower(): cmd = 'runner.exe' else: cmd = './runner.py' self.process.start(cmd,[self.current_file]) def choose_file(self): last_file = self.settings.value('lastFile', None) if last_file: folder = os.path.abspath(os.path.join(last_file, os.pardir)) else: folder = '.' filename = QtGui.QFileDialog.getOpenFileName(self, "Open Image", folder, "Text files (*.config)") path = filename[0] self.settings.setValue('lastFile', path) self.ui.input.setPlainText(path) def finished(self): self.ui.runner.setDisabled(False) self.ui.runner.setText('Executar') self.ui.statusbar.showMessage('Processo finalizado!') s = self.ui.out.toPlainText() # getting from output result folder results = re.findall(r"\>\'.*?\'\<", s) if results: self.output_folder = unicode(results[0][2:-2] + os.sep) self.ui.resultsWidget.setDisabled(False)
class ControlMainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(ControlMainWindow, self).__init__(parent) self.settings = QtCore.QSettings() self.ui = Ui_MainWindow() self.ui.setupUi(self) #self.print_text('Aguardando entrada de dados...') self.ui.filechooser.clicked.connect(self.choose_file) self.ui.runner.clicked.connect(self.run) self.ui.openLink.clicked.connect(self.open_link) self.ui.openFolder.clicked.connect(self.open_folder) self.setWindowIcon(QtGui.QIcon('logo.png')) last_file = self.settings.value('lastFile', None) if last_file: self.ui.input.setPlainText(last_file) #self.output_folder = '/tmp/teste-01/' #self.output_folder = u'C:\\a paça\\exemplo\\teste-01\\' #self.ui.resultsWidget.setDisabled(False) def print_text(self): try: s = str(self.process.readAllStandardOutput()) except: s = "" try: self.ui.out.insertPlainText(s) except: print_error("(String não capturada)") def print_error(self): s = str(self.process.readAllStandardError()) msg = "<br><p style='color: red; font-weight: bold'>%s</p>" % s.replace( '\n', '<br>') self.ui.errors.insertHtml(msg) def clearOutputs(self): self.ui.out.setPlainText('') self.ui.errors.setPlainText('') self.ui.statusbar.clearMessage() def get_output_folder(self): if 'win' in sys.platform.lower(): return 'file:///' + self.output_folder.replace('\\', '/') else: return 'file://' + self.output_folder def open_link(self): path = self.get_output_folder() + 'index.html' print path QtGui.QDesktopServices.openUrl( QtCore.QUrl(path, QtCore.QUrl.TolerantMode)) def open_folder(self): path = self.get_output_folder() QtGui.QDesktopServices.openUrl(path) def run(self): self.clearOutputs() self.ui.resultsWidget.setDisabled(True) self.current_file = self.ui.input.toPlainText() self.ui.runner.setDisabled(True) self.ui.runner.setText('Aguarde, processando...') self.ui.statusbar.showMessage('Aguarde, processando...') self.process = QtCore.QProcess(self) self.process.readyReadStandardOutput.connect(self.print_text) self.process.readyReadStandardError.connect(self.print_error) self.process.finished.connect(self.finished) if 'win' in sys.platform.lower(): cmd = 'runner.exe' else: cmd = './runner.py' self.process.start(cmd, [self.current_file]) def choose_file(self): last_file = self.settings.value('lastFile', None) if last_file: folder = os.path.abspath(os.path.join(last_file, os.pardir)) else: folder = '.' filename = QtGui.QFileDialog.getOpenFileName(self, "Open Image", folder, "Text files (*.config)") path = filename[0] self.settings.setValue('lastFile', path) self.ui.input.setPlainText(path) def finished(self): self.ui.runner.setDisabled(False) self.ui.runner.setText('Executar') self.ui.statusbar.showMessage('Processo finalizado!') s = self.ui.out.toPlainText() # getting from output result folder results = re.findall(r"\>\'.*?\'\<", s) if results: self.output_folder = unicode(results[0][2:-2] + os.sep) self.ui.resultsWidget.setDisabled(False)