我使用setViewMode(QListView :: ListMode)和setFlow(QListView :: TopToBottom)创建了一个QListWidget来获取它:
图标和文字之间的大空间看起来很奇怪,所以我尝试用以下方法删除它:
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来计算图标区域,这不是一个非常好的解决方案,特别是如果图标的大小发生变化。
有没有更好的方法让所有列的宽度相同?