Посмотрите на функцию setItemWidget
. Вы можете создать виджет (назовите его MyListItemWidget
), который содержит две метки значков и текстовую метку, а в его конструкторе укажите две иконки и текст. Тогда вы можете добавить его в свой QListWidget
. Пример кода следующий:
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 );
Вам также следует взглянуть на QListView
и QItemDelegate
, которые являются лучшим вариантом для разработки и отображения пользовательских элементов списка.
ИЗМЕНИТЬ, КАСАЮЩИЕСЯ ВАШЕГО СОЕДИНЕНИЯ
При подключении сигнала к слоту их подпись должна совпадать. Это означает, что слот не может иметь больше параметров, чем сигнал. Из документации по слотам для сигналов
Механизм сигналов и слотов является типобезопасным: подпись
Сигнал должен соответствовать подписи принимающего слота. (На самом деле слот
может иметь более короткую подпись, чем сигнал, который он получает, потому что он
может игнорировать дополнительные аргументы.)
Это означает, что ваш сигнал должен иметь аргумент QListWidgetItem *
в соединении.
connect(list, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(clicked(QListWidgetItem *)))