Как показать иконки без текста в QListWidget? - PullRequest
6 голосов
/ 06 ноября 2011

Я хочу показывать только значки в моем QListWidget. Я установил текст в пустую строку. Когда я выбираю значок, я вижу пустой выделенный квадрат на месте текста. Смотрите скриншот Как я могу избавиться от этого пустого пространства?!

Ответы [ 3 ]

7 голосов
/ 03 июля 2014

вместо этого используйте NULL

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

4 голосов
/ 06 ноября 2011

Как добавить значок в свой QListWidget?Это должно работать нормально (я загружаю значок из файла ресурсов):

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

РЕДАКТИРОВАТЬ

На снимке экрана я вижу, что ваша проблема в том, что естькакой-то пробел под значком, соответствующим пустой строке.Вы можете взломать это поведение, установив очень маленький размер шрифта элемента виджета списка.

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);

Это поможет.Однако вы также можете использовать функцию setItemWidget и использовать свой собственный виджет, или использовать QListView и делегат.

1 голос
/ 12 июня 2014

Моим решением было вызвать setSizeHint () для элемента с размером иконки. Я добавил небольшой отступ, потому что поле выбора было обрезано без него.

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