MultiColFilterProxyModel für PySide

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hallo zusammen,

ausgehend von diesem Thread und dem von mir dort vorgeschlagenen Ansatz habe ich mal ein erweitertes QSortFilterProxyModel für PySide implementiert, welches es erlaubt, in mehreren Spalten den Filter anzuwenden. Zudem habe ich ein Widget implementiert, welches es erlaubt, die Spalten des Models auszuwählen und den Filterpattern einzugeben, sowie per Knopfdruck das Filtern auszulösen. Außerdem stellt es ein Signal bereit, welches emittiert wird, sobald eine Filteraktion durchgeführt wurde und die Anzahl an Zeilen im Quell- und im gefiltertem Model beinhaltet.

Link

Eine kleine, integrierte Demoapplikation zeigt diese Möglichkeiten anhand einer kleinen Tabelle mit Daten der deutschen Bundesländer.

Edit: Screenshot fürs Appetit-holen ;-)
Bild
Zuletzt geändert von Hyperion am Mittwoch 30. März 2011, 14:59, insgesamt 1-mal geändert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Hab mich gefragt, wozu das Modul PySide.QtSql benötgt wird und habe daher nach den importierten Objekten gesucht. Weil es keine Treffer gab, vermute ich mal stark, dass der Import ``from PySide.QtSql import QSqlDatabase, QSqlQueryModel`` überflüssig ist ;) Um solche "Fehler" zu vermeiden, ist PyFlakes übrigens ein nützliches Tool. Vielleicht hat dein Editor ja ein Plugin dafür (ich nutze ein vim-plugin).
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

derdon hat geschrieben:Hab mich gefragt, wozu das Modul PySide.QtSql benötgt wird und habe daher nach den importierten Objekten gesucht. Weil es keine Treffer gab, vermute ich mal stark, dass der Import ``from PySide.QtSql import QSqlDatabase, QSqlQueryModel`` überflüssig ist ;) Um solche "Fehler" zu vermeiden, ist PyFlakes übrigens ein nützliches Tool. Vielleicht hat dein Editor ja ein Plugin dafür (ich nutze ein vim-plugin).
Ah... Mist! Danke für den Tipp. Ja, das ganze ist halt evolutionär gewachsen und da es auf der referenzierten Idee basierte, gab es ursprünglich noch ein DB basiertes Model als Demo ;-)

Ich werde das mal korrigieren und mir PyFlakes angucken.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten