Esiste un modo per visualizzare le icone in QListView senza testo?
Domanda
Utilizzando un QListView, e QStandardItemModel, è possibile visualizzare le icone nella visualizzazione elenco senza visualizzare il testo associato? QStandardItem è definito come:
QStandardItem ( const QIcon & icon, const QString & text )
Così sembra richiedere una stringa di testo di qualche tipo - Voglio solo l'icona visualizzata. Se uso il seguente codice, ottengo le icone come richiesto, ma anche ottenere un elemento di testo vuoto sotto di loro. Non voglio questo.
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);
}
Se vado alla difficoltà di costruire un modello personalizzato, posso risolvere questo problema?
Soluzione
Sì, si può fare.
prima si crea un delegato associato con la lista-view.Then,
Mentre inserendo gli elementi al controllo ListView, funzione set-dati utilizzare per inserire l'icona e in caso di vernice di delegato a gestire l'icona del disegno. Spero che sia chiaro.
Altri suggerimenti
Come mostrare icone senza testo in QListWidget?
dal post di cui sopra, è possibile utilizzare NULL per sbarazzarsi di quello spazio vuoto