Beispiel #1
0
class V(QDialog):
    def __init__(self):
        super(V, self).__init__()
        self.p2p = P2P()
        self.p2p.clientConfig('192.168.1.102', 9001)
        self.p2p.serverConfig('192.168.1.102', 9000)

        #Interface
        loadUi('ui/V.ui', self)
        self.setWindowTitle('Votante')

        #threads
        self.tread = Thread(target=self.p2p.listening)
        self.tread.start()
        self.treadV = Thread(target=self.verify)
        self.treadV.start()

        #Logger
        self.logger = Logger('data/votos.txt', 'data/eleitores.txt')
        if self.logger.compare() is not True:
            self.logger.repair()

        self.btVotar.clicked.connect(self.btVotar_click)

        if self.p2p.msgListen:
            self.btVotar.setEnabled(True)
            self.lbAguardando.setText('Votação Liberada')
            self.txtVoto.setEnabled(True)

    def btVotar_click(self):

        self.btVotar.setEnabled(False)
        self.lbAguardando.setText('Aguardando Liberação')
        self.logger.write(self.txtVoto.text())
        self.txtVoto.clear()
        self.txtVoto.setEnabled(False)

        if self.logger.compare() is not True:
            self.logger.repair()

        reader = self.p2p.reading()

        while reader is not True:
            alert = QMessageBox.warning(
                self, 'Aviso',
                "A conexão foi perdida, clique em 'Retry' para tentar re-estabelecer! ou em 'Cancel' para fechar o programa",
                QMessageBox.Retry | QMessageBox.Cancel, QMessageBox.Retry)
            if alert == QMessageBox.Cancel:
                sys.exit(QApplication(sys.argv).exec_())
            else:
                reader = self.p2p.reading()

    def verify(self):
        while True:
            if self.p2p.msgListen:
                self.btVotar.setEnabled(True)
                self.lbAguardando.setText('Votação Liberada')
                self.txtVoto.setEnabled(True)
                self.p2p.msgListen = False
Beispiel #2
0
class M(QDialog):
    def __init__(self):
        super(M, self).__init__()
        '''
            Classe Peer to Peer com os metodos
            ClientConfig, ServerConfig, Listening, Reading
            O ip client deve ser o ip config da outra ponta
            e o ip server dessa ponta deve ser o ip client da outra
        '''

        self.p2p = P2P()
        self.p2p.clientConfig('192.168.1.102', 9000)
        self.p2p.serverConfig('192.168.1.102', 9001)
        '''
            Para boas praticas, a UI está separada em uma pasta
        '''
        loadUi('ui/M.ui', self)
        self.setWindowTitle('mesario')
        '''
            O sistema comporta-se de duas threads,
            1° é para ficar ouvindo o socket
            2° para verificar se pode ou não habilitar os botoes
            tem uma variavel no P2P que é responsavel por essa função
        '''
        self.tread = Thread(target=self.p2p.listening)
        self.tread.start()
        self.treadV = Thread(target=self.verify)
        self.treadV.start()
        '''
            Classe Logger, já ajusta arquivos
        '''
        self.logger = Logger('data/eleitores.txt', 'data/votos.txt')
        if self.logger.compare() is not True:
            #Aparecer mensagem de texto
            self.logger.repair()

        self.lbAguardando.hide()
        self.btLiberar.clicked.connect(self.btLiberar_click)

    def btLiberar_click(self):
        reader = self.p2p.reading()

        while reader is not True:
            alert = QMessageBox.warning(
                self, 'Aviso',
                "A conexão foi perdida, clique em 'Retry' para tentar re-estabelecer! ou em 'Cancel' para fechar o programa",
                QMessageBox.Retry | QMessageBox.Cancel, QMessageBox.Retry)
            if alert == QMessageBox.Cancel:
                sys.exit(QApplication(sys.argv).exec_())
            else:
                reader = self.p2p.reading()

        self.btLiberar.setEnabled(False)
        self.logger.write(self.txtCodigo.text())
        self.txtCodigo.clear()
        self.lbAguardando.show()

    def verify(self):
        while True:
            if self.p2p.msgListen:
                self.btLiberar.setEnabled(True)
                self.lbAguardando.hide()
                self.p2p.msgListen = False
                if self.logger.compare() is not True:
                    self.logger.repair()