You could go for a QTreeView with a custom model (or use QSortFilterProxyModel) or provide a custom delegate, which fakes the view you like.