[Qt-interest] Tree and Table view on same model

Sean Harmer sean.harmer at maps-technology.com
Tue May 18 16:51:44 CEST 2010


On Tuesday 18 May 2010 15:49:28 Sean Harmer wrote:
> Hi,
> 
> On Tuesday 18 May 2010 15:35:04 Jonathan Lee wrote:
> > Hi all,
> > 
> >   not an expert on Qt so I hope this isn't too trivial.
> >   
> >   I'd like a Tree and Table view on the same model, where
> > 
> > the tree shows a structure, and the table shows the leaves
> > of the selected item of the tree.
> > 
> >   Specifically I have a zip viewer which shows the dirs
> > 
> > on the left in a tree, and the files in that dir on the
> > right in a table.
> > 
> >   Right now I'm doing these two models separately, but
> > 
> > it seems redundant.
> > 
> >   What's the usual way of handling this? Make a proxy
> > 
> > model for both views, using a common model? Or is
> > there a cleaner way?
> 
> Use a single model on both views. Then when the user clicks on a node (or
> activates it by some other means) in the tree view call setRootIndex() on
> your table view so that the table only shows the indexes below that root.
> 
> See:
> 
> http://doc.qt.nokia.com/4.7-snapshot/qabstractitemview.html#activated
> http://doc.qt.nokia.com/4.7-snapshot/qabstractitemview.html#setRootIndex
> 
> Just connect these together and you are done.

Oh as André mentioned you may want to filter out the leaf nodes from the tree 
view by using a proxy model between the source model and the tree view. The 
table view can operate directly on the source model since you are "filtering" 
out the structural nodes by using setRootIndex().

Cheers,

Sean




More information about the Qt-interest-old mailing list