Utilisation d'un QStyledItemDelegate sur un QListView avec QSqlQueryModel

J'ai un QListView, qui a un QSqlQueryModel définir comme son modèle. Comment puis-je utiliser un QStyledItemDelegate afin de personnaliser les QListView lignes du' apparence (par exemple, afficher 2 lignes de texte) ?

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);

Essentiellement, ce que je pense que j'ai besoin de faire est de décider de "match" des rôles de la table db champs, afin d'être en mesure d'obtenir les données de la QStyledItemDelegate, en utilisant quelque chose comme ceci:

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));
    [...]
}

Merci!

source d'informationauteur gmpi | 2011-03-17