Tenga una mirada en la función setItemWidget
. Puede diseñar un widget (llámelo MyListItemWidget
) que contiene dos etiquetas de icono y una etiqueta de texto, y en su constructor proporcione los dos iconos y el texto. Entonces podrías agregarlo a tu QListWidget
. El código de ejemplo siguiente:
QIcon icon1, icon2; // Load them
MyListItemWidget *myListItem = new MyListItemWidget(icon1, icon2, "Text between icons");
QListWidgetItem *item = new QListWidgetItem();
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item, myListItem);
También debe echar un vistazo a QListView
y QItemDelegate
que es la mejor opción para el diseño y la visualización de los elementos de lista personalizada.
EDITAR REFERENTE A SU CONEXIÓN
si aplica una señal a una ranura de su firma debe coincidir. Esto significa que una ranura no puede tener más parámetros que una señal. Desde el signals-slots documentation
El mecanismo de señales y ranuras es de tipo seguro: La firma de una señal de debe coincidir con la firma de la ranura de recepción. (De hecho, una ranura puede tener una firma más corta que la señal que recibe, ya que puede ignorar argumentos adicionales.)
Esto significa que la señal debe tener el argumento QListWidgetItem *
en la conexión.
Seguí el mismo enfoque sugerido por usted que funciona bien pero después de eso cuando uso el evento itemclicked en la lista se dispara con doble clic, debería funcionar con un solo clic. – user662285
¿Cómo se maneja la señal 'itemClicked'? Algún código sería útil – pnezis
ver mi publicación editada arriba. – user662285