KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I would like to display a pandas data frame in a PyQt table. I have made some progress with this, but have not been able to correctly derive the Table Model class. Any help with this would be much appreciated. ** Note full example code here ** I am struggling to generate a valid QtCore.QAbstractTableModel derived class. Following on from a previous question about QItemDelegates I am trying to generate a table model from a Pandas DataFrame to insert real data. I have working example code here , but if I replace my TableModel with TableModel2 in the Widget class (ln 152) I cannot get the table to display. class TableModel2(QtCore.QAbstractTableModel): def __init__(self, parent=None, *args): super(TableModel2, self).__init__() #QtCore.QAbstractTableModel.__init__(self, parent, *args) self.datatable = None self.headerdata = None self.dataFrame = None self.model = QtGui.QStandardItemModel(self) def update(self, dataIn): print 'Updating Model' self.datatable = dataIn print 'Datatable : {0}'.format(self.datatable) headers = dataIn.columns.values header_items = [ str(field) for field in headers ] self.headerdata = header_items print 'Headers' print self.headerdata for i in range(len(dataIn.index.values)): for j in range(len(dataIn.columns.values)): #self.datatable.setItem(i,j,QtGui.QTableWidgetItem(str(df.iget_value(i, j)))) self.model.setItem(i,j,QtGui.QStandardItem(str(dataIn.iget_value(i, j)))) def rowCount(self, parent=QtCore.QModelIndex()): return len(self.datatable.index) def columnCount(self, parent=QtCore.QModelIndex()): return len(self.datatable.columns.values)
Tags (comma-separated)
Save Edits
Cancel