У меня есть 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));
[...]
}
Спасибо!