QAbstractItemModel



  • Hallo,

    gibt es einen einfachen Weg Items in einem Model auszublenden?

    Das ProxyModel sieht sehr umständlich aus, außerdem benutze ich mein Model bereits im ContextMenu, um verschiedene Zustaende zum item zu aendern (z.B. Item Sperren). Muesste ja dann all diese Methoden auch im Proxy Model definieren.

    In der QTreeView gibt es eine Moeglichkeit items auszublenden setRowHidden(..). Das macht auch das was ich will, nur weiss das Model welche items auszublenden sind und nicht die view.
    Die View speichert das wohl in einem Container. Um nun diesen Container
    up-to-date zu halten muss man wohl auch einigen Aufwand treiben

    Oder Ich gehe den weg und Loesche die items komplett und speichere Sie mir irgendwo zwischen. Was auch sehr umstaendlich waere.

    Wenn es keinen einfachen gibt werde ich die Items wohl loeschen oder wie macht ihr das?

    Bin fuer jede Hilfe dankbar 🙂

    Gruß



  • Ein Proxy Model wär der richtige Weg, entweder QFilterSortProxyModel (oder so ^^), oder selber von QProxyItemModel ableiten.



  • Du musst kein eigenes proxy model erstellen wenn dir der QSortFilterProxyModel von der Grundlegenden Funktionalität ausreicht.

    Ein Proxymodel hat auch methoden um von dem QModelIndex des proxies den QModelindex des source models zu bekommen:
    http://developer.qt.nokia.com/doc/qt-4.8/qsortfilterproxymodel.html#mapToSource



  • Danke euch, habe es mit dem Proxy model gemacht und ging echt einfach


Anmelden zum Antworten