Seite 1 von 1

Filter in QTreeView

Verfasst: 22. Juli 2011 23:08
von mugi
Hallo,
ich habe einen QTreeView mit viele Zeilen und Spalten. Die Daten kommen aus einem QAbstractItemModel.
Jetzt zu meiner Frage: Gibt es einen einfachen Weg einer Art Filter zu implementieren so dass über einem QPushButton, nur die Zeilen die einen bestimmten Kriterium erfüllen angezeigt werden. (An der erste Spalte habe ich Checkboxen, und ich will dass nur die gecheckten Zeilen angezeigt werden)
Hier mein Model:

Code: Alles auswählen

 QModelIndex myModel::index ( int row, int column, const QModelIndex & parent) const 
       { 
             return createIndex(row, column); 
       } 
int myModel::rowCount ( const QModelIndex & parent) const 
       { 
            return(r); 
       } 
int myModel::columnCount ( const QModelIndex & parent) const 
       { 
            return(c); 
       } 
QVariant myModel::data ( const QModelIndex & index, int role) const 
       {  ...
       } 
Qt::ItemFlags myModel::flags(const QModelIndex& index) const 
       {....
       } 
bool myModel::setData(const QModelIndex& index, const QVariant& value, int role) 
        { ...
        }
ich habe eigentlich an

Code: Alles auswählen

void setRowHidden ( int row, const QModelIndex & parent, bool hide )
gedacht, aber ich weiß nicht wie ich das im Model implementieren soll -->der Compiler sagt dass der Model keine setRowHidden Methode besitzt !!

Vielen Dank im Voraus.

Re: Filter in QTreeView

Verfasst: 23. Juli 2011 10:00
von Christian81

Re: Filter in QTreeView

Verfasst: 25. Juli 2011 17:05
von mugi
Danke, es klappt wunderbar
Für das Sortieren, habe ich folgendes Code geschrieben:

Code: Alles auswählen

proxyModel = new QSortFilterProxyModel(this);
proxyModel->setDynamicSortFilter(true);
proxyModel->setSourceModel(mymodel);
treeview->setModel(proxyModel);
treeview->setSortingEnabled(true);
Jetzt ist das Sortieren für alle Spalten möglich. Wie kann ich mein Code ändern so dass dies für nur eine bestimmte Spalte möglich wird ?

Re: Filter in QTreeView

Verfasst: 25. Juli 2011 18:26
von Christian81
QSortFilterProxyModel ableiten und das gewünschte Verhalten implementieren.