У меня есть QListView, у которого в качестве модели установлен QSqlQueryModel. Как я могу использовать QStyledItemDelegate для настройки внешнего вида строк QListView (например, показывать 2 текстовые строки)?
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );
db.setDatabaseName( "test.db" );
if( !db.open() )
{
qDebug() << db.lastError();
qFatal( "Failed to connect." );
}
qDebug( "Connected!" );
QSqlQueryModel *sqlModel = new QSqlQueryModel;
sqlModel->setQuery("SELECT * FROM entries");
mListWidget->setModel(sqlModel);
По сути, я думаю, что мне нужно каким-то образом "сопоставить" роли с полями таблицы db, чтобы сможете получить данные из QStyledItemDelegate, используя что-то вроде этого:
void ListViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
[...]
QString headerText = qvariant_cast<QString>(index.data(headerRole));
QString subText = qvariant_cast<QString>(index.data(subHeaderRole));
[...]
}
Спасибо!