def setColDelegate(self, callback): """callback prototype: createDelegate(view, column)""" self.getColDelegate = callback delegate = GenericDelegate(self) for index in range(self.model.columnCount()): deleg_col = self.getColDelegate(index) delegate.insertColumnDelegate(index, deleg_col) # setItemDelegate don't delete previous delegate old_delegate = self.itemDelegate() self.setItemDelegate(delegate) old_delegate.deleteLater()
def setHeaders(self, headers): self.model.removeAllColumns() self.model.setColumnsCount(len(headers)) for index, header in enumerate(headers): self.model.setHeaderData(index, Qt.Horizontal, QVariant(header),\ role=Qt.EditRole) delegate = GenericDelegate(self) for index in range(len(headers)): deleg_col = self.getColDelegate(index) delegate.insertColumnDelegate(index, deleg_col) self.setItemDelegate(delegate) self.horizontalHeader().setResizeMode(QHeaderView.Stretch)