LINUX.ORG.RU

QT DisplayRole не вызывается

 


1

2

Приветствую. Подскажите пожалуйста, создал класс модели, унаследованный от QAbstractItemModel. Модель хранит простой список, когда отображаю данные в QTableView в методе модели data есть вызов DisplayRole, когда отображаю данные в QListView в методе модели data, DisplayRole не вызывается. Собственно основной вопрос Кто и на основе каких данных вызывает у модели метод дата с выбранными ролями? Или кто знает, что для данной модели надо вызвать метода data c параметров displaRole.


Кто и на основе каких данных вызывает у модели метод дата с выбранными ролями?

view вызывает

annulen ★★★★★
()

Проверяй, правильно ли переопределил. Override поставил?

ncuxer
()

Еще почитай документацию. Надо вызывать beginInsertRows(), endInaertRows(), и переопределить метод отвечающий за число строк. С телефона, по памяти не напишу.

ncuxer
()
Ответ на: комментарий от annulen

А как View узнает с какими ролями ей вызывать ф-ию data? Или она вообще со всеми вызывает? Где это устанавливается?

da17
() автор топика
Ответ на: комментарий от ncuxer

Ок, почитаю, но опять же, совершенно не ясно, почему одна модель работать с TableView и не работает c ListView, в принципе это не так критично, но в процессе решения проблемы встал вопрос о том от чего зависит с какими role будет вызываться методе data модели.

da17
() автор топика
Ответ на: комментарий от UVV

Код весь остался на другой пекарне, сегодня заново все напишу и проверю.

da17
() автор топика
Ответ на: комментарий от da17

А как View узнает с какими ролями ей вызывать ф-ию data?

Зависит от того, как конкретный View запрограммирован. Что умеет отображать, то и вызывает

annulen ★★★★★
()
Ответ на: комментарий от UVV

Сделал как в примере, переопределил как написано

When subclassing QAbstractItemModel, at the very least you must implement index(), parent(), rowCount(), columnCount(), and data(). These functions are used in all read-only models, and form the basis of editable models.

все заработало, в старом коде, который не работал, наверное что-то лишнее и криво еще определил. Доступа пока к нему нет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.