ich gebe eine SQL-Abfrage mit Hilfe eines QAbstractTableModels aus. In der Datenbank sind zur Zeit nur 10 Reihen drin.

Die Werte für "Aktiv" und "Maker" sind als 0 und 1 (bool) abgespeichert.
Rufe ich Liste ohne Icons - also mit den Werten 0 und 1 auf - ist die Liste sofort auf dem Bildschirm zu sehen.
Ersetze ich die 1 durch Icons (siehe #7 und #8) braucht diese Ansicht ca. 2-3 Sekunden zum Aufbau.
Geht das auch schneller?
Code: Alles auswählen
def data(self, index, role):
# 0 KD-nr
if index.column() == 0:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return " " + str(value) + " "
if role == Qt.ItemDataRole.TextAlignmentRole:
return Qt.AlignmentFlag.AlignCenter
return None
# 1 Anrede
if index.column() == 1:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return " " + str(value) + " "
return None
# 2 Titel
if index.column() == 2:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return str(" " + value + " ")
return None
# 3 Vorname
if index.column() == 3:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return str(" " + value + " ")
return None
# 4 Nachname
if index.column() == 4:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return str(" " + value + " ")
# 5 PLZ
if index.column() == 5:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return str(" " + value + " ")
if role == Qt.ItemDataRole.TextAlignmentRole:
return Qt.AlignmentFlag.AlignCenter
return None
# 6 Stadt
if index.column() == 6:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DisplayRole:
return str(" " + value + " ")
return None
# 7 Aktiv
if index.column() == 7:
value = self._sql_data.record(index.row()).value(index.column())
if value == 1 and role == Qt.ItemDataRole.DecorationRole:
return QIcon(PIC + "Tick_kn.png")
return None
# 8 Maker
if index.column() == 8:
value = self._sql_data.record(index.row()).value(index.column())
if role == Qt.ItemDataRole.DecorationRole and value == 1:
return QIcon(PIC + "Tick_km.png")
return None