Existe uma maneira de exibir ícones no QListView sem texto?
Pergunta
Usando um QLISTView e QStandardiTemmodel, é possível exibir ícones na visualização da lista sem exibir o texto associado? Qstandarditem é definido como assim:
QStandardItem ( const QIcon & icon, const QString & text )
Portanto, parece exigir uma sequência de texto de algum tipo - eu só quero o ícone exibido. Se eu usar o código a seguir, recebo os ícones conforme solicitado, mas também recebo um elemento de texto em branco por baixo deles. Eu não quero isso.
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 eu for ao trabalho de criar um modelo personalizado, posso resolver esse problema?
Solução
Sim você pode fazer.
Primeiro, você cria um delegado associado ao list-view.hen,
Ao inserir os elementos no ListView, use a função de dados do conjunto para inserir o ícone e, no evento de pintura de delegado, você lida com o ícone de desenho. Espero que esteja claro.
Outras dicas
Como mostrar ícones sem texto no QLISTWIdget?
Do post acima, você pode usar nulo para se livrar desse espaço vazio