2012-12-17 2 views
0

Я хочу реализовать древовидное представление, подобное визуальному студийному исследователю с Qt. Дерево используется для представления внешних данных, называемых «проект». Я хочу использовать модель Qt model/view.Как реализовать древовидный вид, например, визуальный студийный исследователь с Qt?

(1) QTreeView для представления, а модель получена из QAbstractItemModel, которая включает указатель, указывающий на объект проекта. (2) Элементы под каталогом сортируются по его названию. При добавлении элемента под каталог он автоматически помещается в нужное положение. (3) При двойном щелчке по элементу в дереве появится диалоговое окно для редактирования.

Любые хорошие способы реализации (2) и (3). Большое спасибо!

ответ

1

Объявление 2) Взглянув сюда, может быть полезно: http://doc.qt.digia.com/qt/qsortfilterproxymodel.html. Он содержит примеры реализации более сложной сортировки и фильтрации элементов.

Объявление 3) Переопределить QTreeView :: mouseDoubleClickEvent().

Просто обратите внимание, что в качестве альтернативы вы можете использовать QTreeWidget и QTreeWidgetItem, и в этом случае вам может понадобиться пройти дерево и вставить дочерние элементы непосредственно в нужную позицию.

+0

Благодарим за предложение. Мне интересно, как использовать QTreeWidget. Мне также нужно использовать компоновщик виджетов данных. Можно ли использовать его с QTreeWidget? Для элемента каталога, при двойном щелчке, я надеюсь увидеть табличное представление всех элементов в каталоге. Могу ли я создать модель для представления таблицы из исходной модели? Любое хорошее предложение для его реализации? Большое спасибо! – user1899020

+1

QTreeWidget предоставит вам дополнительную гибкость с элементами, если вы не хотите заботиться о базовых данных. В общем, вы предпочитаете придерживаться модели/просмотра большую часть времени. Если вы сделаете много изменений, измените родителей и не сможете найти хорошую базовую структуру, вам может быть проще использовать QTreeWidget напрямую. В этом случае определенно посмотрите [здесь] (http://qt-project.org/doc/qt-4.8/itemviews-simpletreemodel.html) для основных руководств по внедрению. Что касается повторного использования - вы можете использовать ту же модель и инициализировать ее с разными корнями - например. полный путь для QDir. – ellimilial

Смежные вопросы