def action_ok(self): """ Esse método cria uma thread pra executar a função """ if self.valida_form(): self.function = None self.thread = StoppableThread(self.executa) self.progress_bar = Ui_DlgProgressBar(self.ui) self.progress_bar.setupUi(self.progress_bar) self.progress_bar.show() self.thread.start() while (self.function == None): time.sleep(0.005) self.function.print_text = self.progress_bar.print_text self.function.console = self.progress_bar.print_text self.progress_bar.iniciar(self, self.thread)
def action_ok(self): """ Esse método cria uma thread pra executar a função """ if self.valida_form(): self.thread = StoppableThread(self.executa) self.progress_bar = Ui_DlgProgressBar(self.ui) self.progress_bar.setupUi(self.progress_bar) self.progress_bar.show() self.thread.start() while self.function == None: time.sleep(0.005) self.function.print_text = self.progress_bar.print_text self.function.console = self.progress_bar.print_text self.progress_bar.iniciar(self, self.thread)
class Controller(object): """ Essa classe é um controlador abstrato, criado para padronizar os controladores. """ __metaclass__ = ABCMeta # define a classe como abstrata function = None thread = None def __init__(self, userInterface): """ Este contrutor é padrão para os controladores, ele recebe uma user interface que permite o controle as classes controladoras finais não deverão ter construtores """ self.config = ConfigParser.RawConfigParser() self.config.read("workspace.properties") self.ui = userInterface # seta interface para que seja visivel aos outros m�todos def print_text(self, text): self.progress_bar.print_text(text) def console(self, text): self.progress_bar.print_text(text) def action_ok(self): """ Esse método cria uma thread pra executar a função """ if self.valida_form(): self.thread = StoppableThread(self.executa) self.progress_bar = Ui_DlgProgressBar(self.ui) self.progress_bar.setupUi(self.progress_bar) self.progress_bar.show() self.thread.start() while self.function == None: time.sleep(0.005) self.function.print_text = self.progress_bar.print_text self.function.console = self.progress_bar.print_text self.progress_bar.iniciar(self, self.thread) def action_cancel(self): if self.thread != NoneType: if self.thread != None: if self.thread.stopped() == False: self.message(u"Atividade ainda em execução \n feche o aplicativo para parar") self.ui.close() @abstractmethod def valida_form(self): """ Esse método tem que existir nas classes controladoras aqui serão feitas todas as validações do form """ @abstractmethod def executa(self): """ Esse método temque existir nas classes controladoras aqui serão executadas as funções quando for apertado OK na tela """ """ Aqui a baixo estão alguns recursos para facilitar a vida dos controladores """ def findPath(self, textToWrite, type="none"): if type == "folder": fname = QtGui.QFileDialog.getExistingDirectory() else: fname = QtGui.QFileDialog.getOpenFileName() if fname != "": textToWrite.setText(fname) def getSerieTemporal(self, serieTemporal=None): dlgSerieTemporal = DlgNovaSerieTemporal.Ui_Dialog(self.ui) dlgSerieTemporal.setupUi(dlgSerieTemporal) dlgSerieTemporal.setWindowModality(QtCore.Qt.WindowModal) dlgSerieTemporal.setForm(serieTemporal) dlgSerieTemporal.exec_() serie_temporal = dlgSerieTemporal.SerieTemporal return serie_temporal def message(self, text): text = QString(text) QtGui.QMessageBox.about(self.ui, "Ops...", text) def funcao_cancelada(self): if threading.currentThread().stopped(): self.progress_bar.finalizar() return True return False def confirmar(self, text, title): quit_msg = text reply = QtGui.QMessageBox.question(self.ui, title, quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: return True else: return False def finalizar(self): self.function.progresso = 100 self.thread.stop() time.sleep(0.2) self.progress_bar.finalizar()
class Controller(object): ''' Essa classe é um controlador abstrato, criado para padronizar os controladores. ''' __metaclass__ = ABCMeta # define a classe como abstrata function = None thread = None def __init__(self, userInterface): ''' Este contrutor é padrão para os controladores, ele recebe uma user interface que permite o controle as classes controladoras finais não deverão ter construtores ''' self.config = ConfigParser.RawConfigParser() self.config.read('workspace.properties') self.ui = userInterface # seta interface para que seja visivel aos outros m�todos def print_text(self, text): self.progress_bar.print_text(text) def console(self, text): self.progress_bar.print_text(text) def action_ok(self): """ Esse método cria uma thread pra executar a função """ if self.valida_form(): self.function = None self.thread = StoppableThread(self.executa) self.progress_bar = Ui_DlgProgressBar(self.ui) self.progress_bar.setupUi(self.progress_bar) self.progress_bar.show() self.thread.start() while (self.function == None): time.sleep(0.005) self.function.print_text = self.progress_bar.print_text self.function.console = self.progress_bar.print_text self.progress_bar.iniciar(self, self.thread) def action_cancel(self): if self.thread != NoneType: if self.thread != None: if self.thread.stopped() == False: self.message( u"Atividade ainda em execução \n feche o aplicativo para parar" ) self.ui.close() @abstractmethod def valida_form(self): ''' Esse método tem que existir nas classes controladoras aqui serão feitas todas as validações do form ''' @abstractmethod def executa(self): ''' Esse método temque existir nas classes controladoras aqui serão executadas as funções quando for apertado OK na tela ''' """ Aqui a baixo estão alguns recursos para facilitar a vida dos controladores """ def findPath(self, textToWrite, type="none"): config = ConfigParser.RawConfigParser() config.read('workspace.properties') workspace = config.get('WorkSpace', 'space.default') if type == "folder": fname = QtGui.QFileDialog.getExistingDirectory( self.ui, "Selecione uma pasta", workspace) else: print "here" fname = QtGui.QFileDialog.getOpenFileName(self.ui, "Selecione o arquivo", workspace) if fname != "": textToWrite.setText(fname) def getSerieTemporal(self, serieTemporal=None): dlgSerieTemporal = DlgNovaSerieTemporal.Ui_Dialog(self.ui) dlgSerieTemporal.setupUi(dlgSerieTemporal) dlgSerieTemporal.setWindowModality(QtCore.Qt.WindowModal) dlgSerieTemporal.setForm(serieTemporal) dlgSerieTemporal.exec_() serie_temporal = dlgSerieTemporal.SerieTemporal return serie_temporal def message(self, text): text = QString(text) QtGui.QMessageBox.about(self.ui, "Ops...", text) def funcao_cancelada(self): if threading.currentThread().stopped(): self.progress_bar.finalizar() return True return False def confirmar(self, text, title): quit_msg = text reply = QtGui.QMessageBox.question(self.ui, title, quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: return True else: return False def finalizar(self): self.function.progresso = 100 self.thread.stop() time.sleep(0.2) self.progress_bar.finalizar()