Ich hoffe der Titel ist halbwegs verständlich
Ich möchte für mein TableView vertikal eine andere Benennung als horizontal haben. Also eine separate Liste für die Zeilennamen und die Spaltennamen. Dazu habe ich den Konstruktor etwas angepasst, so dass ich als header einen Dictionary mit zwei Listen übergeben kann:
Code: Alles auswählen
class TableModel(QtCore.QAbstractTableModel):
def __init__(self, table=[[]], headers={}, parent=None):
QtCore.QAbstractTableModel.__init__(self, parent)
self.__table = table
self.__headersHorizontal = headers['horizontal'] # enthält Liste für horizontale Benennung
self.__headersVertical = headers['vertical'] # enthält Liste vertikale Benennung
Code: Alles auswählen
def headerData(self, section, orientation, role):
if role == QtCore.Qt.DisplayRole:
if role == QtCore.Qt.Vertical:
return self.__headersVertical[section]
else:
return self.__headersHorizontal[section]
Code: Alles auswählen
...
headerHorizontal = ['A','B','C','D','E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
headerVertical = [i for i in range(len(headerHorizontal))]
model = TableModel(data,{'vertical': headerHorizontal, 'horizontal': headerVertical})
...
Es ist auch egal ob ich in headerData() nun auf Vertikal:
Code: Alles auswählen
if role is QtCore.Qt.Vertical:
Code: Alles auswählen
if role is QtCore.Qt.Horizontal:
Kann mir Jemand sagen wo hier mein Brett vor dem Kopf ist?
Danke schonmal,
Gondii