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 necesariasimportar 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 necesariosimportar 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.