Используя takois answer Я поиграл с sizeHintForColumn
или sizeHintForRow
и обнаружил, что вам нужно добавить немного большие числа, потому что все еще могут быть поля, зависящие от стиля. ekhumoros комментарий тогда поставьте меня на правильный путь.
Короче говоря, полный размер виджета списка:
list.sizeHintForColumn(0) + 2 * list.frameWidth()
list.sizeHintForRow(0) * list.count() + 2 * list.frameWidth())
Согласно комментарию *1013* от Violet, он может не работать в Qt 5.
Также помните, что для установки размера содержимого вам не нужны полосы прокрутки, поэтому я отключаю их.
Мой полный пример для QListWidget
, скорректированный по размеру его содержимого:
from PySide import QtGui, QtCore
app = QtGui.QApplication([])
window = QtGui.QWidget()
layout = QtGui.QVBoxLayout(window)
list = QtGui.QListWidget()
list.addItems(['Winnie Puh', 'Monday', 'Tuesday', 'Minnesota', 'Dracula Calista Flockhart Meningitis', 'Once', '123345', 'Fin'])
list.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
list.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
list.setFixedSize(list.sizeHintForColumn(0) + 2 * list.frameWidth(), list.sizeHintForRow(0) * list.count() + 2 * list.frameWidth())
layout.addWidget(list)
window.show()
app.exec_()