Est-il possible d'afficher les icônes dans QListView sans texte?
Question
L'utilisation d'un QListView et QStandardItemModel, est-il possible d'afficher les icônes dans la liste sans afficher le texte? QStandardItem est défini comme ceci:
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, je reçois les icônes comme l'a demandé, mais je reçois aussi un élément de texte vide en dessous. Je ne veux pas.
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?
La solution
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 l'icône de dessin. J'espère que son clair.
Autres conseils
Comment afficher des icônes sans texte QListWidget?
du poste ci-dessus, vous pouvez utiliser NULL pour se débarrasser de cet espace vide