2010-04-08 12 views
7

Avec QListView et QStandardItemModel, est-il possible d'afficher des icônes dans la vue de liste sans afficher le texte associé? QStandardItem est défini comme ceci:Existe-t-il un moyen d'afficher des icônes dans QListView sans texte?

QStandardItem (const QIcon & icon, const QString & text) 

Il semble donc d'exiger une chaîne de texte de quelque sorte - je ne veux que l'icône affichée. Si j'utilise le code suivant, j'obtiens les icônes comme demandé, mais je reçois également un élément de texte vide en dessous d'eux. Je ne veux pas ça.

ImageListView->setViewMode(QListView::IconMode); 
{ 
    QStandardItemModel *iStandardModel = new QStandardItemModel(this); 
    QStandardItem* item1 = new QStandardItem(QIcon("images/shield-280x280.png"),""); 
    QStandardItem* item2 = new QStandardItem(QIcon("images/shield-280x280.png"),""); 

    iStandardModel->appendRow(item1); 
    iStandardModel->appendRow(item2); 
    ImageListView->setIconSize(QSize(100,100)); 
    ImageListView->setUniformItemSizes(true); 
    ImageListView->setDragDropMode(QAbstractItemView::DropOnly); 
    ImageListView->setModel(iStandardModel); 
} 

Si je vais à la peine de construire un modèle personnalisé, puis-je résoudre ce problème?

Répondre

3

Oui, vous pouvez le faire.

d'abord vous créez un délégué associé à la liste-view.Then,

Lors de l'insertion des éléments à ListView, utilisez la fonction-ensemble de données pour insérer l'icône et en cas de peinture de délégué vous manipulez le dessin icône. J'espère que c'est clair.

+0

J'évaluerai votre réponse et je reviendrai vers vous. Merci! –

+8

@Chris pouvez-vous poster un extrait de code pour ce problème? – Dmitriy

+1

Code serait bien je suis d'accord: les délégués coutumiers ont tendance à donner aux gens les willies. – neuronet