#cpp #база_данных #qt #listview #tableview
Допустим есть класс Book. В нем хранится описание книги и QImage. Как мне переопределить методы QAbstractTableModel чтобы в первом столбце выводилось это изображение, а во втором - текст. Не проще ли будет использовать QAbstrctListModel и в нем изменить ItemDelegate. Как это сделать?
Ответы
Ответ 1
Наиболее простой вариант - использовать роль Qt::DecorationRole при формировании значения ячейки в функции QAbstractItemModel::data. С помощью этой роли можно выводить в ячейке QImage (еще можно QIcon или QPixmap) без использования специальных делегатов. Конкретно вывод картинок, при обработке роли Qt::DecorationRole, выполняет стандартный QStyledItemDelegate, этот делегат работает по умолчанию в представлениях. Либо проследите, что делегат, который вы используете, корректно обрабатывает роль Qt::DecorationRole. Так например, другой стандартный делегат QItemDelegate, будет выводить только QIcon или QPixmap, а QImage не будет.
Комментариев нет:
Отправить комментарий