问题
I want to show only icons in my QListWidget. I set text to empty string. When I select an icon I see an empty selected square on the text place. See the screenshot How can I get rid of this empty space?!
回答1:
use NULL instead
ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"),NULL));
回答2:
How do you add an icon in your QListWidget? This should work fine (I am loading the icon from the resource file) :
ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"), ""));
EDIT
From the screenshot I see that your problem is that there is some white space below the icon corresponding to the empty string. You could hack this behavior by setting a very small size to the font of the list widget item.
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);
This will do the trick. However you could also use the setItemWidget function and use your custom designed widget, or use a QListView
and a delegate.
回答3:
My solution was to call setSizeHint() on the item with the size of the icon. I added a little padding because the selection box was cut off without it.
QListWidgetItem * pItem = new QListWidgetItem(icon, "");
pItem->setSizeHint(iconSize + QSize(4,4));
listWidget->addItem(pItem);
来源:https://stackoverflow.com/questions/8023983/how-to-show-icons-without-text-in-qlistwidget