LINUX.ORG.RU

Зачем нужен метод roleNames в Qt

 ,


0

3

Изучаю Qt по книге Mastering Qt 5 за авторством Guillaume Lazar. Дошел до третьей главы. Автор предлагает реализовать класс AlbumModel для отображения списка альбомов с помощью QListView. Для этого необходимо реализовать два метода rowsCount и data. С помощью этих методов QListView может получить общее количество строк в списке и для каждой строки получить данные для отображения на экране. Абстракция понятна и логична, но возникает вопрос: зачем в модели нужен метод QHash<int, QByteArray> roleNames() const override? Для отображения данных метод судя по всему не используется. Возможно он нужен для какой-то интроспеции, но какой? В документации Qt есть короткий комментарий, который не добавляет ясности:

Returns the model’s role names.

Ответ на: комментарий от Goganchic

Зачем переопределять? По умолчанию это DisplayRole и если тебе не нужны, к примеру, подсказки, то ты не определяешь ToolTipRole. Если не нужно в ячейке хранить что-то специфическое, то не определяешь UserRole и т.д.

alex-w ★★★★★
()