Pitón

Cómo utilizar PyQt QTableWidget

Cómo utilizar PyQt QTableWidget
Se utiliza una tabla para mostrar datos en un formato estructurado, según filas y columnas. La QTableWidget La clase de PyQt se puede usar en Python para mostrar datos en forma tabular para tareas relacionadas con la investigación o el análisis de datos. El contenido de la tabla se puede generar a partir de diferentes tipos de almacenamiento, como listas o tablas bidimensionales, tablas de bases de datos, archivos JSON, etc.  Se pueden crear una o más tablas usando QTableWidget en la aplicación PyQt. Este tutorial muestra cómo usar QTableWidget para crear varios tipos de tablas usando la secuencia de comandos de Python.

Métodos necesarios

La QTableWidget La clase incluye muchos métodos para realizar tareas relacionadas con la creación de tablas. Algunos de los métodos más utilizados de esta clase se explican a continuación:

Nombre del método Propósito
setRowCount () Se usa para definir el número de filas.
setColumnCount () Se usa para definir el número de columnas.
setHorizontalHeaderLabels () Se utiliza para configurar las etiquetas de encabezado de la tabla.
setItem () Se utiliza para establecer el valor de celda de la tabla.
resizeColumnsToContents () Se utiliza para cambiar el tamaño de las columnas de la tabla según el contenido.
resizeRowsToContents () Se usa para cambiar el tamaño de las filas de la tabla según el contenido.
setMinimumWidth () Se utiliza para establecer el ancho mínimo de la mesa.
setMinimumHeight () Se utiliza para establecer la altura mínima de la mesa.
show() Se usa para mostrar la mesa.

Uso de QTableWidget

Las siguientes secciones proporcionan ejemplos simples para explicar cómo crear una tabla en la aplicación PyQt usando datos estáticos y datos de lista.

Ejemplo 1: crear una tabla simple con datos estáticos

El siguiente script crea una tabla de datos estáticos con cinco filas y cuatro columnas usando el QTableWidget clase. Dos por Se han utilizado bucles con valores de rango en el script para agregar los datos estáticos en las celdas de la tabla. Las posiciones de fila y columna de cada celda se han agregado como el contenido de cada celda. La QDesktopWidget se usa en el script para mostrar la ventana con la tabla en el centro de la pantalla.

# Importar bibliotecas necesarias
importar sys
de PyQt5.QtWidgets importan QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
de PyQt5.QtCore importar QSize
# Definir clase para crear la tabla con datos estáticos
clase SimpleTable (QMainWindow):
def __init __ (yo):
# Llamar al constructor padre
súper().__en eso__()
# Establecer el tamaño y el título de la ventana
uno mismo.setMinimumSize (QSize (420, 150))
uno mismo.setWindowTitle ("Tabla simple con datos estáticos")
# Crea la tabla con las propiedades necesarias
table = QTableWidget (propio)
mesa.setColumnCount (4)
mesa.setRowCount (5)
mesa.setMinimumWidth (500)
mesa.setMinimumHeight (500)
# Establecer los encabezados de la tabla
mesa.setHorizontalHeaderLabels (["Encabezado-1", "Encabezado-2", "Encabezado-3", "Encabezado-4"])
# Establecer los valores de la tabla
para i en el rango (5):
para j en el rango (4):
mesa.setItem (i, j, QTableWidgetItem ("Fila-" + str (i + 1) + ", Col-" + str (j + 1)))
# Cambiar el tamaño de las filas y columnas según el contenido
mesa.resizeColumnsToContents ()
mesa.resizeRowsToContents ()
# Mostrar la mesa
mesa.show()
# Mostrar la ventana en el centro de la pantalla
ganar = uno mismo.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrar()
ganar.moveCenter (pos)
uno mismo.mover (ganar.arriba a la izquierda())
uno mismo.show()
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
mw = Tabla simple ()
mw.show()
aplicación.ejecutivo ()

Aparecerá la siguiente ventana con una tabla, se ejecuta el script anterior. Según los valores de la por bucles, el valor de celda de la primera fila y la primera columna es 'Fila-1, Col-1,'y el valor de celda de la última fila y la última columna es'Fila-5, Col-4.'

Ejemplo 2: crear una tabla con información sobre herramientas utilizando el diccionario y los datos de lista

El siguiente script crea una tabla con el contenido de un diccionario y una lista de Python usando el QTableWidget clase. El script también agrega un texto de información sobre herramientas para el encabezado de la tabla. Un diccionario de Python llamado marcas también se declara en el script. Los códigos del curso se utilizan como valores clave del diccionario. Se declara una lista de Python para definir las ID de los estudiantes. Los valores clave del diccionario se agregan al encabezado de la tabla, los valores de la lista se agregan a la primera columna de la tabla y los valores del diccionario se agregan a las otras columnas de la tabla.

# Importar módulos necesarios
importar sys
de PyQt5.QtWidgets importan QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Declarar una variable de diccionario con marcas
marcas = 'CSE-401': [78, 93, 67, 88, 78],
"CSE-404": [90, 59, 82, 73, 89],
"CSE-406": [81, 80, 74, 83, 67],
'CSE-407': [81, 80, 98, 83, 72]
clase TableFromList (QTableWidget):
def __init __ (self, data, * args):
# Llamar al constructor padre
QTableWidget.__init __ (self, * argumentos)
# Declare una lista de los IDS de los estudiantes
uno mismo.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Establecer las configuraciones necesarias para la mesa
uno mismo.datos = datos
uno mismo.resizeColumnsToContents ()
uno mismo.resizeRowsToContents ()
uno mismo.setColumnWidth (0, 100)
para i en el rango (4):
uno mismo.setColumnWidth (i, 80)
uno mismo.setMinimumWidth (400)
uno mismo.setWindowTitle ("Marcar hoja")
# Declare la variable para establecer el contenido del encabezado
encabezados = []
encabezados.adjuntar(")
# for loop para leer las claves del diccionario
para n, escriba enumerate (sorted (self.datos.llaves())):
encabezados.añadir (clave)
# for loop para leer los valores del diccionario
para m, artículo en enumerate (self.datos [clave]):
ID = QTableWidgetItem (self.ID_list [m])
uno mismo.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (elemento))
uno mismo.setItem (m, n + 1, newVal)
# Establecer la etiqueta del encabezado de la tabla
uno mismo.setHorizontalHeaderLabels (encabezados)
# Establecer la información sobre herramientas para los encabezados
uno mismo.horizontalHeaderItem (1).setToolTip ("Multimedia")
uno mismo.horizontalHeaderItem (2).setToolTip ("Inteligente artificial")
uno mismo.horizontalHeaderItem (3).setToolTip ("Base de datos avanzada")
uno mismo.horizontalHeaderItem (4).setToolTip ("Programación Unix")
# Leer el valor de la celda en particular
uno mismo.clickeado.conectar (uno mismo.al hacer clic)
# Mostrar la ventana en el centro de la pantalla
ganar = uno mismo.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().centrar()
ganar.moveCenter (pos)
uno mismo.mover (ganar.arriba a la izquierda())
uno mismo.show()
def on_click (yo):
para ItemVal en sí mismo.selectedItems ():
# Leer el valor del encabezado según la celda seleccionada
sujeto = yo.horizontalHeaderItem (ItemVal.columna()).texto()
# Imprime la información detallada de la marca
imprimir ("\ n", self.ID_list [ItemVal.fila ()], "obtenido", ItemVal.texto (), "en", asunto)
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
table = TableFromList (marcas, 5, 5)
mesa.show()
aplicación.ejecutivo ()

La siguiente ventana con la tabla aparecerá después de que se ejecute el script anterior.

Conclusión

Este tutorial le mostró cómo crear tablas con datos fijos, datos de diccionario y datos de listas usando dos ejemplos. Las tablas también se pueden crear con datos dinámicos utilizando tablas de bases de datos u otras fuentes de datos.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...