Возможно ли использовать TableModel в ListView?, И при этом использовать и другие колонки модели! (не тока первую) |
Здравствуйте, гость ( Вход | Регистрация )
Возможно ли использовать TableModel в ListView?, И при этом использовать и другие колонки модели! (не тока первую) |
Strikevld |
21.11.2011, 14:00
Сообщение
#1
|
Студент Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: 0 |
Например идея такая:
Widget (делегат какбы) ----------------------------------------------------------------------------- | ChildWidget1 | ChildWidget2 | ChildWidget3 | ChildWidget4 | - это всё одна строка ListView ----------------------------------------------------------------------------- Каждый из ChildWidget соответствует своей колонке в TableModel Блин понимаю что это должно быть просто но не представляю с чего начинать! Направьте куда надо! P.S. Мне это ещё и в QML надо будет но в том разделе я даже вопрос не мог сформулировать! Сообщение отредактировал Strikevld - 21.11.2011, 13:59 |
|
|
novichkov |
23.11.2011, 19:41
Сообщение
#2
|
Студент Группа: Участник Сообщений: 64 Регистрация: 20.3.2008 Из: Северодвинск Пользователь №: 128 Спасибо сказали: 6 раз(а) Репутация: 1 |
А обязательно использовать QListView? Если вы хотите, чтобы строки виджета выглядели как в QListView, просто используйте QTreeView. Ну а если обязательно, то можно попытаться написать соответствующий QAbstractProxyModel.
Сообщение отредактировал novichkov - 23.11.2011, 19:42 |
|
|
Strikevld |
24.11.2011, 9:11
Сообщение
#3
|
Студент Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: 0 |
Просто я собираюсь использовать это ещё и в QML
А там вроде нет TreeView |
|
|
BlueIceScream |
24.11.2011, 15:21
Сообщение
#4
|
Студент Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: 3 |
Ну тут сразу 4 решения:
1) Наследуете QTableView переопределяете paintEvent. Для возможности редактирования можете изменить еще некоторые методы, либо заменить стандартный делегат. 2) Создаете собственный делегат для прорисовки элементов в QListView. 3) Если стоит вопрос только изменения внешнего вида, то простейшее решение использовать собственный StyleSheet для QTableView. 4) Наследуете QAbstractItemModel. Создаете собственную модель, в которой ваши данные в нескольких ячейках собираете в одну, и выдаете для прорисовки стандартному делегату класса QListView. 4-ый метод конечно противоречит самой MVC, но в пройстеших нуждах можно и его использовать. Я бы использовал 2 метод если нужна гибкая система с возможностью корректного изменения данных. Имея QModelIndex для текущей строки можно пройтись по столбцам QAbstractTableModel, сгруппировать их необходимым образом и нарисовать. Если нет нужны непосредственного изменения данных через представление, то конечно же мой вариант 3. |
|
|
Strikevld |
25.11.2011, 6:06
Сообщение
#5
|
Студент Группа: Участник Сообщений: 53 Регистрация: 6.9.2011 Пользователь №: 2849 Спасибо сказали: 6 раз(а) Репутация: 0 |
Блин... Клёво!!! Спасибо!!!
|
|
|
Текстовая версия | Сейчас: 23.11.2024, 11:50 |