Pyqt QTableview nach sortieren Refreshen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Benutzeravatar
nieselfriem
User
Beiträge: 72
Registriert: Sonntag 13. Januar 2013, 16:00

Pyqt QTableview nach sortieren Refreshen

Beitragvon nieselfriem » Sonntag 17. September 2017, 13:42

Hallo zusammen,

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?

  1.  class KundenTableModel(QtCore.QAbstractTableModel):
  2.     headers = ["Nachname", "Vorname","Straße", "PLZ", "Ort",  "Land", "Adresszusatz", "Staat", "Tel", "Email"]
  3. ....  
  4.    def sort(self, Ncol, order):
  5.         """Sort table by given column number.
  6.        """
  7.         #Todo: Sortieren erst nach
  8.         self.layoutAboutToBeChanged.emit()
  9.         self._data= [['' if x is None else x for x in c] for c in self._data]
  10.         try:
  11.             self._data = sorted(self._data, key=operator.itemgetter(Ncol))
  12.         except:
  13.             print("Kein Sortieren möglich")
  14.         if order == Qt.DescendingOrder:
  15.             self._data.reverse()
  16.         self.layoutChanged.emit()


  1.     def load_ku_data(self):
  2.         model = self.fill_tables.fill_ku_table()
  3.         if model is not None:
  4.             self.kuDatenTb.setModel(model)
  5.             self.kuDatenTb.setSortingEnabled(True)
  6.         else:
  7.             print ("Nomodel")
  8.             self.no_Ku_Datas_LB.setVisible(False)


VG niesel
Benutzeravatar
__deets__
User
Beiträge: 1323
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Pyqt QTableview nach sortieren Refreshen

Beitragvon __deets__ » Sonntag 17. September 2017, 16:57

Die Doku is da ungewöhnlich schlecht. Aber ich würde es mal mir Data changed Signalen probieren, statt denen die du verwendest.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder