Мне нужно сделать нечто вроде диалога настроек, где слева в QListWidget сверху вниз располагаются значки с подписями в соответствии с разделами. Мне нужно, чтобы этот список всегда принимал минимальную ширину, так, чтобы в нём помещались все значки и в то же время, чтобы не было пустого места. Как этого можно добиться?
Этот вопрос уже поднимался
http://www.prog.org.ru/topic_5536_0.html, но у меня продолжение темы.
Написал я такой код:
Python
pl = self.form.pagesList
width = 0
for i in xrange(0, pl.count()):
item = pl.item(i)
width = max(width, pl.fontMetrics().width(item.text()))
width = width + 48
pl.setMaximumWidth(width)
for i in xrange(0, pl.count()):
item = pl.item(i)
h = pl.iconSize().height() + pl.fontMetrics().height() + 8
item.setSizeHint(QSize(width-6, h))
Все работает, но смущает "магическое" число 6 в последней строке, полученное эмпирически. Похоже, это удвоенный отступ Item-а от внешнего края Widget-а. Можно его получить из какой-то функции? Или как задать/получить для widget-а внутренние размеры?