crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> TreeView+ItemModel изменение многих элементов
Sokoloff
  опции профиля:
сообщение 17.7.2009, 16:46
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Есть QTreeView и QAbstractItemModel. Необходимо сделать такую штуку, человек выделяет несколько строк в дереве (дерево выглядит как таблица), нажимает F2, открывается редактор в текущей строке он меняет значение, нажимает Enter, и для всех выделенных елементов устанавливется новое значение. Никак не придумаю как сделать такое. Не пойму в каком классе мне это обрабатывать.

Из ItemModel и из ItemDelegate я не могу получить selectionModel. А в QTreeView есть selectionModel, но как в нем определить момент изменения данных?

Или я чего не понимаю?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.7.2009, 17:05
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Sokoloff @ 17.7.2009, 20:46) *
о как в нем определить момент изменения данных?
а в нём и не надо, в родительском классе (в котором создаётся объект представления) работай с моделью выделения и с сигналом модели данных:
void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]
либо с одним из сигналов делегата:
void QAbstractItemDelegate::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint = NoHint ) [signal]
void QAbstractItemDelegate::commitData ( QWidget * editor ) [signal]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 7.6.2020, 0:02