es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenando un Qtablewidget de manera ascendente por direcciones IP

Tengo un QTableWidget en PyQt con mucha información y quiero ordenarlo por dirección IP así:

10.10.10.1
10.10.10.12
10.10.11.111
10.11.12.3

Primero las IP “más pequeñas” (1.1.1.1) y luego ascendente.

¿Alguna idea de cómo es posible?

Este es el código que hice después de la ayuda brindada.

            for row in results:
                self.tableWidget.setItem(tablerow, 0, QTableWidgetItem(str(row[0])))
                self.tableWidget.setItem(tablerow, 1, QTableWidgetItem(row[1]))
                self.tableWidget.setItem(tablerow, 2, QTableWidgetItem(row[2]))
                self.tableWidget.setItem(tablerow, 3, QTableWidgetItem(row[3]))
                self.tableWidget.setItem(tablerow, 4, QTableWidgetItem(row[4]))
                self.tableWidget.setItem(tablerow, 5, IpAddressTtem(str(row[5])))
                self.tableWidget.setItem(tablerow, 6, QTableWidgetItem(row[6]))
                self.tableWidget.setItem(tablerow, 7, QTableWidgetItem(row[7]))
                ###
                self.tableWidget.setItem(tablerow, 8, QTableWidgetItem(decryption(to_enc=row[8])))
                ###
                self.tableWidget.setItem(tablerow, 9, QTableWidgetItem(row[9]))
                self.tableWidget.setItem(tablerow, 10, QTableWidgetItem(row[10]))
                self.tableWidget.setItem(tablerow, 11, QTableWidgetItem(row[11]))

                self.tableWidget.setSortingEnabled(True)

                tablerow += 1
            self.tableWidget.sortItems(5, QtCore.Qt.SortOrder.AscendingOrder)

El proceso finalizó con el código de salida -1073740791 (0xC0000409).

PD: Los datos provienen de una base de datos 😉
y todas las direcciones IP están en la fila 5. Aquí es donde quiero ordenar.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el método QTableWidget.sortItems() para ordenar la tabla por una columna específica. En su caso, puede ordenar por la columna de dirección IP (columna 5) en orden ascendente de esta manera:

    self.tableWidget.setSortingEnabled(True)
    self.tableWidget.sortItems(5, QtCore.Qt.SortOrder.AscendingOrder)
    

    Esto ordenará la tabla por la columna de dirección IP en orden ascendente, comenzando por las direcciones IP más pequeñas (por ejemplo, 1.1.1.1).

Comments are closed.