TreeModel + QSortFilterProxyModel + QTableView |
Здравствуйте, гость ( Вход | Регистрация )
TreeModel + QSortFilterProxyModel + QTableView |
edwardoid |
26.6.2012, 11:20
Сообщение
#1
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема такая:
Есть модель, наследующая 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. Не помогло. Вопрос: как мне добиться, чтобы и в других колонках показывалась нужная мне информация? Сообщение отредактировал edwardoid - 27.6.2012, 23:46 |
|
|
zoonman |
27.6.2012, 21:58
Сообщение
#2
|
Студент Группа: Новичок Сообщений: 18 Регистрация: 24.1.2011 Пользователь №: 2361 Спасибо сказали: 0 раз(а) Репутация: 0 |
RTFM QModelIndex QAbstractItemModel::index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const [pure virtual] Returns the index of the item in the model specified by the given row, column and parent index. |
|
|
edwardoid |
27.6.2012, 23:43
Сообщение
#3
|
Участник Группа: Участник Сообщений: 171 Регистрация: 1.5.2008 Из: Ереван, Армения Пользователь №: 164 Спасибо сказали: 0 раз(а) Репутация: 0 |
RTFM QModelIndex QAbstractItemModel::index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const [pure virtual] Returns the index of the item in the model specified by the given row, column and parent index. И что? Проблема в том, что в функцию data приходят индексы только с column == 0 |
|
|
Гость_Гость_* |
28.6.2012, 9:49
Сообщение
#4
|
Гости |
Во первых получаешь неверный item, а именно:
.Но это так лирика, проблема в том, что ты не сделал свои реализации для mapToSource и mapFromSource. Вот пример реализации прокси модели добавляющей одну чекабельную колонку к модели(атач гостям к сожалению не разрешен): Хидер: Раскрывающийся текст
Сурс: Раскрывающийся текст
Это правда вариант на коленке, который я кому то опять же в учебных целях делал, но основную идею иллюстрирует. |
|
|
Гость_Гость_* |
28.6.2012, 9:55
Сообщение
#5
|
Гости |
Упс, за Item сорри не разглядел, просто часто нераспространенная ошибка.
|
|
|
Гость_Гость_* |
28.6.2012, 9:58
Сообщение
#6
|
Гости |
*
Лол лучше пойду пить кофе. Большой синий букв М последним 2ум мессаджам и первую часть поста подредактируйте если не сложно. |
|
|
Текстовая версия | Сейчас: 2.12.2024, 1:26 |