예제 #1
0
 def start_conversor(self):
     if self.LEditArqOrig.text() != '' and self.LEditArqDes.text() != '':
         self.BtnConverter.setEnabled(False)
         self.CxTexto.insertPlainText(strftime('[%H:%M:%S]')+ " Convertendo arquivo...\n")
         self.CxTexto.moveCursor(QtGui.QTextCursor.End)
         self.dadosArquivo = []
         self.th = ThConversor(self.dadosArquivo, self.nome_arquivoOrigem)
         self.th.start()
         self.creat_progress_bar()
         self.doAction()
     else:
         reply = QtGui.QMessageBox.critical(self, 'Aviso', "Insira arquivos válidos", QtGui.QMessageBox.Ok)
예제 #2
0
class AplicativoConversor(QtGui.QMainWindow):
    def __init__(self):
        super(AplicativoConversor, self).__init__()
        self.setupUi()

    def setupUi(self):
        # SETANDO O TAMANHO MAXIMO
        self.resize(675, 350)
        self.setMinimumSize(675, 350)
        self.setMaximumSize(675, 350)
        self.setWindowTitle("LEDS Conversor")
        self.setWindowIcon(QtGui.QIcon("View\\Imagens\\icone.png"))

        # Widget principal
        self.centralWidget = QtGui.QWidget(self)

        # Layout pricipal
        self.LayoutPrincipal = QtGui.QHBoxLayout(self.centralWidget)
        self.LayoutPrincipal.setMargin(3)
        self.LayoutPrincipal.setSpacing(3)

        self.LayoutWidget = QtGui.QVBoxLayout()
        self.LayoutWidget.setMargin(3)
        self.LayoutWidget.setSpacing(3)

        # CRIANDO TODOS OS LAYOUTS
        self.layoutImagem()
        self.layoutArqOri()
        self.layoutArqDes()
        self.layoutConversao()
        self.layoutBtnConversao()

        # ADICIONANDO TODOS OS LAYOUTS NO LAYOUT PRINCIPAL
        self.LayoutWidget.addLayout(self.LayoutImagem)
        self.LayoutWidget.addLayout(self.LayoutArqOrigem)
        self.LayoutWidget.addLayout(self.LayoutArqDestino)
        self.LayoutWidget.addLayout(self.LayoutConversao)
        self.LayoutWidget.addLayout(self.LayoutBtnConversao)

        self.menu()
        self.toolBar()
        self.status()


        self.LayoutPrincipal.addLayout(self.LayoutWidget)

        self.setCentralWidget(self.centralWidget)

    def layoutImagem(self):
        self.LBImagem = QtGui.QLabel()
        self.LBImagem.setPixmap(QtGui.QPixmap(("View\\Imagens\\Title.png")))
        self.LBImagem.setAlignment(QtCore.Qt.AlignCenter)
        self.LayoutImagem =QtGui.QVBoxLayout(self.centralWidget)
        self.LayoutImagem.addWidget(self.LBImagem)

    def layoutArqOri(self):
        # LAYOUT DO SELECIONAR ARQUIVO DE ORIGEM
        self.LayoutArqOrigem = QtGui.QHBoxLayout()
        self.LayoutArqOrigem.setMargin(3)
        self.LayoutArqOrigem.setSpacing(3)

        # BOTOES DO LAYOUT DO SELECIONAR ARQUIVO DE ORIGEM
        ## CRIANDO OS BOTOES
        self.LbSelectArq = QtGui.QLabel("Selecione o arquivo que quer converter:", self.centralWidget)
        self.LEditArqOrig = QtGui.QLineEdit(self.centralWidget)
        self.btn_browser1 = QtGui.QPushButton("Browser...", self.centralWidget)
        self.btn_browser1.clicked.connect(self.arqOrigem)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(("View\\Imagens\\pasta.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btn_browser1.setIcon(icon)

        ## ADICIONANDO OS BOTOES DO LAYOUT DO SELECIONAR ARQUIVO DE ORIGEM
        self.LayoutArqOrigem.addWidget(self.LbSelectArq)
        self.LayoutArqOrigem.addWidget(self.LEditArqOrig)
        self.LayoutArqOrigem.addWidget(self.btn_browser1)

    def layoutArqDes(self):
        # LAYOUT DO SELECIONAR ARQUIVO DE DESTINO
        self.LayoutArqDestino = QtGui.QHBoxLayout()
        self.LayoutArqDestino.setMargin(3)
        self.LayoutArqDestino.setSpacing(3)

        # BOTOES DO LAYOUT DO SELECIONAR ARQUIVO DE DESTINO
        ## CRIANDO OS BOTOES
        self.LbArqDes = QtGui.QLabel("Selecione onde quer salvar o novo arquivo:", self.centralWidget)
        self.LEditArqDes = QtGui.QLineEdit(self.centralWidget)
        self.BtnBrowser2 = QtGui.QPushButton("Browser...", self.centralWidget)
        self.BtnBrowser2.clicked.connect(self.arqDestino)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(("View\\Imagens\\pasta.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BtnBrowser2.setIcon(icon)

        ## ADICIONANDO OS BOTOES DO LAYOUT DO SELECIONAR ARQUIVO DE ORIGEM
        self.LayoutArqDestino.addWidget(self.LbArqDes)
        self.LayoutArqDestino.addWidget(self.LEditArqDes)
        self.LayoutArqDestino.addWidget(self.BtnBrowser2)

    def layoutConversao(self):
        # LAYOUT DO QUE MOSTRA O STATUS DA CONVERSAO
        self.LayoutConversao = QtGui.QVBoxLayout()
        self.LayoutConversao.setMargin(3)
        self.LayoutConversao.setSpacing(3)

        # BOTOES DO LAYOUT QUE MOSTRA O STATUS DA CONVERSAO
        ## CRIANDO OS BOTOES
        self.CxTexto = QtGui.QTextBrowser(self.centralWidget)

        ## ADICIONANDO OS BOTOES DO LAYOUT QUE MOSTRA O STATUS DA CONVERSAO
        self.LayoutConversao.addWidget(self.CxTexto)

    def layoutBtnConversao(self):
        # LAYOUT DO QUE TEM OS BOTOES PARA SAIR E CONVERTER
        self.LayoutBtnConversao = QtGui.QHBoxLayout()
        self.LayoutBtnConversao.setMargin(3)
        self.LayoutBtnConversao.setSpacing(3)

        # BOTOES DO LAYOUT QUE TEM OS BOTOES PARA SAIR E CONVERTER
        ## CRIANDO OS BOTOES
        spacerItem = QtGui.QSpacerItem(35, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)

        self.BtnConverter = QtGui.QPushButton(" Converter!", self.centralWidget)
        self.BtnConverter.clicked.connect(self.start_conversor)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("View\\Imagens\\start_icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BtnConverter.setIcon(icon1)

        self.BtnSair = QtGui.QPushButton(" Sair", self.centralWidget)
        self.BtnSair.clicked.connect(self.close)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("View\\Imagens\\log_out.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.BtnSair.setIcon(icon2)

        ## ADICIONANDO OS BOTOES DO LAYOUT QUE MOSTRA OS BOTOES DE CONVERTER E SAIR
        self.LayoutBtnConversao.addItem(spacerItem)
        self.LayoutBtnConversao.addWidget(self.BtnConverter)
        self.LayoutBtnConversao.addWidget(self.BtnSair)

    def creat_progress_bar(self):
        self.pbar = QtGui.QProgressBar(self)             # Criando uma barra de progresso
        self.LayoutConversao.addWidget(self.pbar)        # Adicionando a barra de progresso no layout do widget
        self.timer = QtCore.QBasicTimer()                # Criando o objeto tempo
        self.step = 0                                    # Controlador do tempo
        self.inicio = 0                                  # Controla o relogio

    def start_conversor(self):
        if self.LEditArqOrig.text() != '' and self.LEditArqDes.text() != '':
            self.BtnConverter.setEnabled(False)
            self.CxTexto.insertPlainText(strftime('[%H:%M:%S]')+ " Convertendo arquivo...\n")
            self.CxTexto.moveCursor(QtGui.QTextCursor.End)
            self.dadosArquivo = []
            self.th = ThConversor(self.dadosArquivo, self.nome_arquivoOrigem)
            self.th.start()
            self.creat_progress_bar()
            self.doAction()
        else:
            reply = QtGui.QMessageBox.critical(self, 'Aviso', "Insira arquivos válidos", QtGui.QMessageBox.Ok)

    def timerEvent(self, e):
        if self.step >= 100:
            self.timer.stop()
            self.CxTexto.insertPlainText(strftime('[%H:%M:%S]')+ " Conversão concluida com sucesso...\n")
            self.CxTexto.insertPlainText(strftime('[%H:%M:%S]')+ " Salvando arquivo...\n")
            SalvaArquivo(self.nome_arquivoDestino, self.dadosArquivo, self)

        if self.dadosArquivo != []:
            if (len(self.dadosArquivo)-1) <= self.dadosArquivo[0]:
                 self.step = ((len(self.dadosArquivo)-1)*100)//self.dadosArquivo[0]
                 self.pbar.setValue(self.step)
            self.inicio = self.inicio + 0.1

    def doAction(self):
        self.timer.isActive()
        self.timer.start(100, self)

    def arqOrigem(self):
        reply = QtGui.QMessageBox.information(self, 'Aviso', "Por favor insira o arquivo xlsx pra conversão", QtGui.QMessageBox.Ok)
        self.nome_arquivoOrigem = QtGui.QFileDialog.getOpenFileName(self, "Selecionar o arquivo xlsx", filter="All(*.xlsx)")  ##Abre um arquivo
        self.LEditArqOrig.setText(self.nome_arquivoOrigem)

    def arqDestino(self):
        reply = QtGui.QMessageBox.information(self,'Aviso',"Selecione a pasta para salvar o arquivo", QtGui.QMessageBox.Ok)
        self.nome_arquivoDestino = QtGui.QFileDialog.getSaveFileName(self, "Selecionar o local para salvar o arquivo", filter="All(*.txt)")  ##Abre um arquivo
        self.LEditArqDes.setText(self.nome_arquivoDestino)

    def menu(self):
        self.menuBar = QtGui.QMenuBar(self)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 827, 21))
        self.setMenuBar(self.menuBar)

    def toolBar(self):
        self.mainToolBar = QtGui.QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.mainToolBar)

    def status(self):
        self.statusBar = QtGui.QStatusBar(self)
        self.setStatusBar(self.statusBar)