Использование QStyledItemDelegate в QListView с QSqlQueryModel

У меня есть 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));
    [...]
}

Спасибо!

10
задан gmpi 17 March 2011 в 03:34
поделиться