2012-07-30 61 views
11

Quiero agregar mis datos a una tabla usando pyqt en python. Encontré que debería usar la función setItem() para agregar datos a QTableWidget y darle el número de fila y columna y un QTableWidgetItem. Lo hice pero cuando quiero mostrar la tabla, está completamente vacía. Tal vez cometí un error tonto, pero por favor, ayúdenme. Aquí está mi código:Agregar datos a QTableWidget usando PyQt4 en Python

from PyQt4 import QtGui 

class Table(QtGui.QDialog): 
    def __init__(self, parent=None): 
     super(Table, self).__init__(parent) 
     layout = QtGui.QGridLayout() 
     self.led = QtGui.QLineEdit("Sample") 
     self.table = QtGui.QTableWidget() 
     layout.addWidget(self.led, 0, 0) 
     layout.addWidget(self.table, 1, 0) 
     self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) 
     self.setLayout(layout) 

if __name__ == '__main__': 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    t = Table() 
    t.show() 
    sys.exit(app.exec_()) 

Respuesta

19

Lo que busca son los métodos y setRowCount()setColumnCount(). Llámelos en el QTableWidget para especificar el número de filas/columnas. P.ej.

... 
self.table = QtGui.QTableWidget() 
self.table.setRowCount(5) 
self.table.setColumnCount(5) 
layout.addWidget(self.led, 0, 0) 
layout.addWidget(self.table, 1, 0) 
self.table.setItem(1, 0, QtGui.QTableWidgetItem(self.led.text())) 
... 

Este código hará una tabla 5x5 y mostrar "muestra" en la segunda fila (con índice 1) y la primera columna (con índice 0).

Sin llamar a estos dos métodos, QTableWidget no sabría qué tan grande es la tabla, por lo que establecer el elemento en la posición (1, 0) no tendría sentido.

En caso de que no lo sepa, el Qt Documentation es detallado y contiene muchos ejemplos (que se pueden convertir fácilmente a Python). Las secciones de "Descripción detallada" son especialmente útiles. Si desea obtener más información acerca de QTableWidget, vaya aquí: http://qt-project.org/doc/qt-4.8/qtablewidget.html#details

Cuestiones relacionadas