Название: TreeModel + QSortFilterProxyModel + QTableView Отправлено: edwardoid от Июнь 26, 2012, 13:09 Проблема такая:
Есть модель, наследующая QAbstractItemModel (ItemsModel). Она имеет древовидную структуру и используется в QTreeView. Нужно использовать ее через proxy(используется класс QSortFilterProxyModel(ItemsProxyModel)) в QTableView. В искомой модели: Код
А в proxy модели, т.к. я исользую ее в QTableView мне нужны несколько колонок в которых будет разная информация из соответствующего item-a из оригинальной модели: Код
Потому: Код
Я не знаю почему, но в функцию ItemsProxyModel::data(QModelIndex& index, int role) приходят индексы, в которых c < 1. Т.е не приходят индексы других колонок. Вместе с тем QTreeView рисует таблицу с 5 столбцами(Которые нельзя пометить, они disabled). Побовал переопределить Qt::ItemFlags QAbstractProxyModel::flags ( const QModelIndex & index ) const. Не помогло. Вопрос: как мне добиться, чтобы и в других колонках показывалась нужная мне информация? Название: Re: TreeModel + QSortFilterProxyModel + QTableView Отправлено: kolob от Январь 07, 2013, 17:19 Интересно почему тема не раскрыта.
Меня интересует как вообще дерево в tableview засунуть. Прочитал что можно как то через proxymodel, но будет ли она корректно отображаться. TableView поймет где заголовок и надо объединить колонки данной строки. Или лучше переписать QTableView? Название: Re: TreeModel + QSortFilterProxyModel + QTableView Отправлено: edwardoid от Январь 07, 2013, 18:58 Интересно почему тема не раскрыта. Меня интересует как вообще дерево в tableview засунуть. Прочитал что можно как то через proxymodel, но будет ли она корректно отображаться. TableView поймет где заголовок и надо объединить колонки данной строки. Или лучше переписать QTableView? Почитайте про Model/View (http://"http://qt-project.org/doc/qt-4.8/model-view-programming.html"). Если вы написали модель(просто наследуйте QAbstractItemModel и в вашем QTreeView(например) вызовите QTreeView::setModel(QAbstractItemModel* model). Если вы внимательно прочитаете документаю про QAbstractItemModel и QTreeView, то поймете как в в заголовках отображать данные(Headers), и отображать данные в самом дереве(QAbtractItemModel::data(int)). A QSortFilterProxyModel нужен для сортировки и фильтрации, отображения не всего дерева, а скажем как-то части. Название: Re: TreeModel + QSortFilterProxyModel + QTableView Отправлено: kolob от Январь 07, 2013, 19:21 Цитировать Почитайте про Model/View. Если вы написали модель(просто наследуйте QAbstractItemModel и в вашем QTreeView(например) вызовите QTreeView::setModel(QAbstractItemModel* model). Если вы внимательно прочитаете документаю про QAbstractItemModel и QTreeView, то поймете как в в заголовках отображать данные(Headers), и отображать данные в самом дереве(QAbtractItemModel::data(int)). не понимаю к чему вы это написали.Есть модель иерархическая, нужно ее вставить в TableView, но только чтобы она корректно отображалась. Родительский итем как сплошная строка. А дочерние в каждой колонке. Как то так. Вот пример. |