crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Возможно ли использовать 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  


Блин... Клёво!!! Спасибо!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 6:20