QListWidget - 删除填充&am​​p;一致的列宽

时间:2016-06-15 19:23:19

标签: c++ qt

我使用setViewMode(QListView :: ListMode)和setFlow(QListView :: TopToBottom)创建了一个QListWidget来获取它:

screenshot

图标和文字之间的大空间看起来很奇怪,所以我尝试用以下方法删除它:

list->setStyleSheet("QListView::icon { padding-right: 0px; }");

还有:

list->setStyleSheet("QListView::icon { padding: 0px; }");

但是没有移除空间。有没有办法删除图标和文本之间的空格?

此外,您可以从上面的屏幕截图中看到QListWidget使用可变列宽,但我希望所有列都具有相同的宽度。我试过这个解决方案:

int width = 0;
int numItems = list->count();
QFontMetrics metrics(list->font());
for (int i = 0 ; i  < numItems ; ++i)
{
    if (metrics.boundingRect(list->item(i)->text()).width() > width)
        width = metrics.boundingRect(list->item(i)->text()).width();
}
list->setGridSize(QSize(width+30, 16));

然而,它似乎并不一致,我不得不使用+30来计算图标区域,这不是一个非常好的解决方案,特别是如果图标的大小发生变化。

有没有更好的方法让所有列的宽度相同?

0 个答案:

没有答案