ich habe in meinem Tabellenmodell eine Sortierfunktion implementiert, die bei Anklicken des Tabelleheaders die Tabelle in alphabetischer Reihenfolge sortiert. Das Funktion recht gut, bis auf einem kleinen Manko. Ich muss erst in der Tabelle kurz scrollen, damit die sortierung quasi in einem Refresh ihre Anwendung findet. Wie kann ich die Tabelle quasi Refreshen, nach dem die Sortierung statt gefunden hat?
Code: Alles auswählen
class KundenTableModel(QtCore.QAbstractTableModel):
headers = ["Nachname", "Vorname","Straße", "PLZ", "Ort", "Land", "Adresszusatz", "Staat", "Tel", "Email"]
....
def sort(self, Ncol, order):
"""Sort table by given column number.
"""
#Todo: Sortieren erst nach
self.layoutAboutToBeChanged.emit()
self._data= [['' if x is None else x for x in c] for c in self._data]
try:
self._data = sorted(self._data, key=operator.itemgetter(Ncol))
except:
print("Kein Sortieren möglich")
if order == Qt.DescendingOrder:
self._data.reverse()
self.layoutChanged.emit()
Code: Alles auswählen
def load_ku_data(self):
model = self.fill_tables.fill_ku_table()
if model is not None:
self.kuDatenTb.setModel(model)
self.kuDatenTb.setSortingEnabled(True)
else:
print ("Nomodel")
self.no_Ku_Datas_LB.setVisible(False)