Seite 1 von 1

MultiColFilterProxyModel für PySide

Verfasst: Sonntag 27. März 2011, 22:41
von Hyperion
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

Re: MultiColFilterProxyModel für PySide

Verfasst: Sonntag 27. März 2011, 23:18
von derdon
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).

Re: MultiColFilterProxyModel für PySide

Verfasst: Sonntag 27. März 2011, 23:20
von Hyperion
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.