def __init__(self): super(MainWindow, self).__init__() self.administrador = Administrador() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.agregar_final_pushButton.clicked.connect(self.click_agregar) self.ui.agregar_inicio_pushButton.clicked.connect( self.click_agregar_inicio) self.ui.mostrar_pushButton.clicked.connect(self.click_mostrar) self.ui.actionAbrir.triggered.connect(self.action_abrir_archivo) self.ui.actionGuardar.triggered.connect(self.action_guardar_archivo) self.ui.mostrar_tabla_pushButton.clicked.connect(self.mostrar_tabla) self.ui.buscar_pushButton.clicked.connect(self.buscar_id) self.ui.dibujar.clicked.connect(self.dibujar) self.ui.limpiar.clicked.connect(self.limpiar) self.scene = QGraphicsScene() self.ui.graphicsView.setScene(self.scene) self.ui.actionId_ascendente.triggered.connect(self.action_ordenar_id) self.ui.actionDistancia_descendente.triggered.connect( self.action_ordenar_distancia) self.ui.actionVelocidad_ascendente.triggered.connect( self.action_ordenar_velocidad) self.ui.actionGrafo.triggered.connect(self.action_crear_grafo)
def __init__(self): super(MainWindow, self).__init__() self.administrador = Administrador() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.agregar_final_pushButton.clicked.connect(self.click_agregar) self.ui.agregar_inicio_pushButton.clicked.connect( self.click_agregar_inicio) self.ui.mostrar_pushButton.clicked.connect(self.click_mostrar)
class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.administrador = Administrador() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.agregar_final_pushButton.clicked.connect(self.click_agregar) self.ui.agregar_inicio_pushButton.clicked.connect( self.click_agregar_inicio) self.ui.mostrar_pushButton.clicked.connect(self.click_mostrar) @Slot() def click_mostrar(self): #self.administrador.mostrar() self.ui.salida.clear() self.ui.salida.insertPlainText(str(self.administrador)) @Slot() def click_agregar(self): id = self.ui.id_lineEdit.text() origen_x = self.ui.origen_x_spinBox.value() origen_y = self.ui.origen_y_spinBox.value() destino_x = self.ui.destino_x_spinBox.value() destino_y = self.ui.destino_y_spinBox.value() velocidad = self.ui.velocidad_lineEdit.text() red = self.ui.red_spinBox.value() green = self.ui.green_spinBox.value() blue = self.ui.blue_spinBox.value() particula = Particula(id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) self.administrador.agregar_final(particula) #print (id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) #self.ui.salida.insertPlainText (id + str(origen_x) + str(origen_y) + str(destino_x) + str(destino_y) + #velocidad + str(red) + str(green) + str(blue)) @Slot() def click_agregar_inicio(self): id = self.ui.id_lineEdit.text() origen_x = self.ui.origen_x_spinBox.value() origen_y = self.ui.origen_y_spinBox.value() destino_x = self.ui.destino_x_spinBox.value() destino_y = self.ui.destino_y_spinBox.value() velocidad = self.ui.velocidad_lineEdit.text() red = self.ui.red_spinBox.value() green = self.ui.green_spinBox.value() blue = self.ui.blue_spinBox.value() particula = Particula(id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) self.administrador.agregar_inicio(particula)
class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.administrador = Administrador() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.agregar_final_pushButton.clicked.connect(self.click_agregar) self.ui.agregar_inicio_pushButton.clicked.connect( self.click_agregar_inicio) self.ui.mostrar_pushButton.clicked.connect(self.click_mostrar) self.ui.actionAbrir.triggered.connect(self.action_abrir_archivo) self.ui.actionGuardar.triggered.connect(self.action_guardar_archivo) self.ui.mostrar_tabla_pushButton.clicked.connect(self.mostrar_tabla) self.ui.buscar_pushButton.clicked.connect(self.buscar_id) self.ui.dibujar.clicked.connect(self.dibujar) self.ui.limpiar.clicked.connect(self.limpiar) self.scene = QGraphicsScene() self.ui.graphicsView.setScene(self.scene) def wheelEvent(self, event): if event.delta() > 0: self.ui.graphicsView.scale(1.2, 1.2) else: self.ui.graphicsView.scale(0.8, 0.8) @Slot() def dibujar(self): pen = QPen() pen.setWidth(2) for particula in self.administrador: r = particula.red g = particula.green b = particula.blue color = QColor(r, g, b) pen.setColor(color) self.scene.addEllipse(particula.origen_x, particula.origen_y, 3, 3, pen) self.scene.addEllipse(particula.destino_x, particula.destino_y, 3, 3, pen) self.scene.addLine(particula.origen_x + 3, particula.origen_y + 3, particula.destino_x, particula.destino_y, pen) @Slot() def limpiar(self): self.scene.clear() @Slot() def buscar_id(self): id = self.ui.buscar_lineEdit.text() encontrado = False for particula in self.administrador: if id == particula.id: self.ui.tabla.clear() self.ui.tabla.setRowCount(1) id_widget = QTableWidgetItem(particula.id) origen_x_widget = QTableWidgetItem(str(particula.origen_x)) origen_y_widget = QTableWidgetItem(str(particula.origen_y)) destino_x_widget = QTableWidgetItem(str(particula.destino_x)) destino_y_widget = QTableWidgetItem(str(particula.destino_y)) velocidad_widget = QTableWidgetItem(particula.velocidad) red_widget = QTableWidgetItem(str(particula.red)) green_widget = QTableWidgetItem(str(particula.green)) blue_widget = QTableWidgetItem(str(particula.blue)) distancia_widget = QTableWidgetItem(str(particula.distancia)) self.ui.tabla.setItem(0, 0, id_widget) self.ui.tabla.setItem(0, 1, origen_x_widget) self.ui.tabla.setItem(0, 2, origen_y_widget) self.ui.tabla.setItem(0, 3, destino_x_widget) self.ui.tabla.setItem(0, 4, destino_y_widget) self.ui.tabla.setItem(0, 5, velocidad_widget) self.ui.tabla.setItem(0, 6, red_widget) self.ui.tabla.setItem(0, 7, green_widget) self.ui.tabla.setItem(0, 8, blue_widget) self.ui.tabla.setItem(0, 9, distancia_widget) encontrado = True return if not encontrado: QMessageBox.warning( self, "Atención", f'La particula con el id "{id}" no fue encontrada') @Slot() def mostrar_tabla(self): self.ui.tabla.setColumnCount(10) headers = [ "Id", "Origen_x", "Origen_y", "Destino_x", "Destino_y", "Velocidad", "Red", "Green", "Blue", "Distancia" ] self.ui.tabla.setHorizontalHeaderLabels(headers) self.ui.tabla.setRowCount(len(self.administrador)) row = 0 for particula in self.administrador: id_widget = QTableWidgetItem(particula.id) origen_x_widget = QTableWidgetItem(str(particula.origen_x)) origen_y_widget = QTableWidgetItem(str(particula.origen_y)) destino_x_widget = QTableWidgetItem(str(particula.destino_x)) destino_y_widget = QTableWidgetItem(str(particula.destino_y)) velocidad_widget = QTableWidgetItem(particula.velocidad) red_widget = QTableWidgetItem(str(particula.red)) green_widget = QTableWidgetItem(str(particula.green)) blue_widget = QTableWidgetItem(str(particula.blue)) distancia_widget = QTableWidgetItem(str(particula.distancia)) self.ui.tabla.setItem(row, 0, id_widget) self.ui.tabla.setItem(row, 1, origen_x_widget) self.ui.tabla.setItem(row, 2, origen_y_widget) self.ui.tabla.setItem(row, 3, destino_x_widget) self.ui.tabla.setItem(row, 4, destino_y_widget) self.ui.tabla.setItem(row, 5, velocidad_widget) self.ui.tabla.setItem(row, 6, red_widget) self.ui.tabla.setItem(row, 7, green_widget) self.ui.tabla.setItem(row, 8, blue_widget) self.ui.tabla.setItem(row, 9, distancia_widget) row += 1 @Slot() def action_abrir_archivo(self): ubicacion = QFileDialog.getOpenFileName(self, 'Abrir Archivo', '.', 'JSON (*.json)')[0] if self.administrador.abrir(ubicacion): QMessageBox.information(self, "Éxito", "Se abrió el archivo" + ubicacion) else: QMessageBox.critical(self, "Error", "Error al abrir el archivo" + ubicacion) @Slot() def action_guardar_archivo(self): ubicacion = QFileDialog.getSaveFileName(self, 'Guardar Archivo', '.', 'JSON (*.json)')[0] print(ubicacion) if self.administrador.guardar(ubicacion): QMessageBox.information(self, "Éxito", "Se pudo crear el archivo" + ubicacion) else: QMessageBox.critical(self, "Error", "No se pudo crear el archivo") @Slot() def click_mostrar(self): #self.administrador.mostrar() self.ui.salida.clear() self.ui.salida.insertPlainText(str(self.administrador)) @Slot() def click_agregar(self): id = self.ui.id_lineEdit.text() origen_x = self.ui.origen_x_spinBox.value() origen_y = self.ui.origen_y_spinBox.value() destino_x = self.ui.destino_x_spinBox.value() destino_y = self.ui.destino_y_spinBox.value() velocidad = self.ui.velocidad_lineEdit.text() red = self.ui.red_spinBox.value() green = self.ui.green_spinBox.value() blue = self.ui.blue_spinBox.value() particula = Particula(id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) self.administrador.agregar_final(particula) #print (id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) #self.ui.salida.insertPlainText (id + str(origen_x) + str(origen_y) + str(destino_x) + str(destino_y) + #velocidad + str(red) + str(green) + str(blue)) @Slot() def click_agregar_inicio(self): id = self.ui.id_lineEdit.text() origen_x = self.ui.origen_x_spinBox.value() origen_y = self.ui.origen_y_spinBox.value() destino_x = self.ui.destino_x_spinBox.value() destino_y = self.ui.destino_y_spinBox.value() velocidad = self.ui.velocidad_lineEdit.text() red = self.ui.red_spinBox.value() green = self.ui.green_spinBox.value() blue = self.ui.blue_spinBox.value() particula = Particula(id, origen_x, origen_y, destino_x, destino_y, velocidad, red, green, blue) self.administrador.agregar_inicio(particula)