def _configurarGui(self): layout = QVBoxLayout() self._lblUsuario = QLabel() self._editReceber = EditReceber() self._lblSituacao = LabelSituacao(None) self._editEnviar = EditEnviar() layout.addWidget(self._lblUsuario) layout.addWidget(self._editReceber) layout.addWidget(self._lblSituacao) layout.addWidget(self._editEnviar) self.setLayout(layout)
class BarraConversaUsuario(QWidget): def __init__(self, servico, usuario, parent=None): super().__init__(parent) self._configurarGui() self._numConversasNaoVisualizadas = 0 self._servico = servico self._usuario = None self.setUsuario(usuario) self._editEnviar.situacaoModificada.connect(self._enviarSituacao) self._editEnviar.textoDigitado.connect(self._enviarConversa) def _configurarGui(self): layout = QVBoxLayout() self._lblUsuario = QLabel() self._editReceber = EditReceber() self._lblSituacao = LabelSituacao(None) self._editEnviar = EditEnviar() layout.addWidget(self._lblUsuario) layout.addWidget(self._editReceber) layout.addWidget(self._lblSituacao) layout.addWidget(self._editEnviar) self.setLayout(layout) def _enviarSituacao(self, sit): self._servico.enviarInformacaoConversa(sit) def _enviarConversa(self, conv): self._servico.enviarConversa(conv) self._editReceber.receberTexto(self._servico.getNome(), conv) def atualizarSituacao(self, sit): self._lblSituacao.setSituacao(sit) def setUsuario(self, usuario): """Se o usuário for diferente do atual atualiza o nome do usuário nas conversas recebidas anteriormente.""" if not self._usuario or self._usuario.getNome() != usuario.getNome(): nomeAntigo = self._usuario and self._usuario.getNome() or NOME_DEFAULT self._editReceber.renomearUsuario(nomeAntigo, usuario.getNome()) self._usuario = usuario self._servico.setPara(self._usuario.getIP()) self._lblSituacao.setUsuario(usuario) self._lblUsuario.setText(str(usuario)) def getUsuario(self): return self._usuario def setNumConversasNaoVisualizadas(self, num): self._numConversasNaoVisualizadas = num def getNumConversasNaoVisualizadas(self): return self._numConversasNaoVisualizadas def receberTexto(self, texto): self._editReceber.receberTexto(self._usuario.getNome(), texto)