2011-11-05 21 views

Respuesta

4

¿Cómo agregar un ícono en su QListWidget? Esta multa debería funcionar (Estoy cargando el icono del archivo de recursos):

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"), "")); 

EDITAR

Desde la pantalla veo que su problema es que hay algún espacio en blanco debajo del icono correspondiente a la cadena vacía Podría hackear este comportamiento estableciendo un tamaño muy pequeño para la fuente del elemento del widget de lista.

QListWidgetItem *newItem = new QListWidgetItem; 
QFont f; 
f.setPointSize(1); // It cannot be 0 
newItem->setText(""); 
newItem->setIcon(QIcon(":/res/icon")); 
newItem->setFont(f); 
ui->listWidget->addItem(newItem); 

Esto hará el truco. Sin embargo, también podría usar la función setItemWidget y usar su widget diseñado a medida, o usar un QListView y un delegado.

+0

Un espacio vacío, se muestra el texto en su lugar. Este espacio se selecciona cuando seleccionas el ícono. Quiero deshacerme de eso. Corregí mi pregunta. – Dmitriy

+0

Verifique mi respuesta actualizada – pnezis

+0

Configurar fuente pequeña no funciona. Un pequeño rectángulo sigue siendo visible después de la selección. setItemWidget funciona de manera extraña, todavía muestra un rectángulo vacío. He agregado QLabel con un mapa de píxeles como widget. La última esperanza es el delegado. ¿Puedes publicar un fragmento de código, cómo lograr mi objetivo? – Dmitriy

1

Mi solución fue llamar a setSizeHint() en el elemento con el tamaño del icono. Agregué un pequeño relleno porque el cuadro de selección se cortó sin él.

QListWidgetItem * pItem = new QListWidgetItem(icon, ""); 
pItem->setSizeHint(iconSize + QSize(4,4)); 
listWidget->addItem(pItem); 
7

uso NULL en lugar

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"),NULL));

+1

esta es la respuesta correcta – ejectamenta

Cuestiones relacionadas