def on_gerar_arestas_button_clicked(self): self.limparInferencias() self.grafo.limpar() n_linhas = self.tabela_adjacencia.rowCount() n_colunas = self.tabela_adjacencia.columnCount() for x in xrange(n_linhas): for y in xrange(x,n_colunas): item = self.tabela_adjacencia.cellWidget(x, y) if item.currentText() == '1': v1 = str(self.tabela_adjacencia.horizontalHeaderItem(x).text()) v2 = str(self.tabela_adjacencia.verticalHeaderItem(y).text()) valor = None if self.valorar_aresta.isChecked(): ok = False while not ok: valor,ok = QInputDialog().getText(self, 'Dados para a aresta {0}-{1} (separados por ",")'.format(v1,v2), 'Dados:', mode=QLineEdit.Normal, text=QString()) valor = str(valor) if not ok: sair = QMessageBox.question(self, 'Cancelar?', u'deseja cancelar a criação do grafo?', buttons=QMessageBox.Yes | QMessageBox.No, defaultButton=QMessageBox.NoButton) if sair == QMessageBox.Yes: self.grafo.limpar() return elif valor == '': atribuir_zero = QMessageBox.question(self, 'Valor em branco!', u'Atribuit valor "0" à aresta?', buttons=QMessageBox.Yes | QMessageBox.No, defaultButton=QMessageBox.NoButton) if atribuir_zero: valor = '0' else: valor = None valor = valor.split(',') valor = {string.split(':')[0]:string.split(':')[1] for string in valor} for dado in valor: if valor[dado].isdigit(): valor[dado] = int(valor[dado]) else: try: valor[dado] = float(valor[dado]) except ValueError: pass self.grafo.adicionarAresta(v1, v2, valor) self.eh_conexo.setChecked(self.grafo.ehConexo()) self.eh_arvore.setChecked(self.grafo.ehArvore()) self.eh_regular.setChecked(self.grafo.ehRegular()) self.eh_completo.setChecked(self.grafo.ehCompleto())