This code is from "Main":
....
self.k_db_open()
self.k_db_init()
self.query_model = QSqlQueryModel()
query = QSqlQuery("SELECT dbkKDNr, dbkAnrede, dbkTitel, dbkVorname, dbkNachname, dbkPLZ,
dbkStadt, dbkaktiv, dbkMAker FROM kunde")
headers = ['KdNr.', 'Anrede', 'Titel', 'Vorname', 'Nachname', 'PLZ', 'Stadt', 'Aktiv', 'Maker']
limit = len(headers)
self.query_model.setQuery(query)
tab_model = MyTableModel(self.query_model, headers)
view = QTableView()
view.setModel(tab_model)
counter = 0
while counter < limit:
view.resizeColumnToContents(counter)
counter += 1
self.close_db()
and the class of the QAbstractTableModel
class MyTableModel(QAbstractTableModel):
def __init__(self, model, headers):
super().__init__(model)
self._model_sql = model
self._headers = headers
def rowCount(self, index=None):
return self._model_sql.rowCount()
def columnCount(self, index=None):
return self._model_sql.columnCount()
def headerData(self, section, orientation, role):
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal:
return self._headers[section]
return MyTableModel.headerData(self, section, orientation, role)
if role == Qt.ItemDataRole.ForegroundRole:
# Color ....
return QVariant(QColor("blue"))
def data(self, index, role=Qt.ItemDataRole.DisplayRole):
if not index.isValid():
print("index: " + str(index))
return None
elif role == Qt.ItemDataRole.DisplayRole:
column = index.column()
# 0
if column == 0:
value = self._model_sql.record(index.row()).value(column)
if role == Qt.ItemDataRole.TextAlignmentRole:
return Qt.AlignmentFlag.AlignCenter
return value
# 1
elif column == 1:
value = self._model_sql.record(index.row()).value(column)
return value
# 2
elif column == 2:
value = self._model_sql.record(index.row()).value(column)
return value
# 3 ...
# 4 ...
...
# 9
elif column == 9:
value = self._model_sql.record(index.row()).value(column)
return value
else:
return None
return None
The table works as expected, except that I can't put the first column in the middle.
I compared this code with a working code from Qt5, but it doesn't work under Qt6. Does somebody has any idea?
Thank you for reading !!!