Похоже, это очень легко сделать с Qt model-view control.
Поначалу это немного сбивает с толку, но в основном все списки, древовидные списки и сетки обрабатываются одинаково - что позволяет очень легко объединять их.
Редактировать: Кейси опубликовал полезный комментарий в ответе, который был удален.
Вот текст и ссылка:
создание вашей модели дерева довольно
прямо вперед. Чтобы создать это
«сгруппированный» эффект, когда родитель
узлы выглядят иначе, чем их
дети, я бы предложил создать
ItemDelegate затем установите его на свой
просмотр с использованием setItemDelegate 1 . в
Функция рисования делегата вы можете
определить, является ли индекс заголовком
или сейчас, и нарисуем что-нибудь
соответственно. Когда вы доберетесь, если
тебе нужна помощь, начни другой вопрос
и я могу опубликовать пример.
http://doc.trolltech.com/4.6/qabstractitemview.html#setItemDelegate