У Джейсона было какое-то решение. Высота строк дерева также должна быть изменена:
class MyDelegate(QItemDelegate):
def __init__(self):
QItemDelegate.__init__(self)
def sizeHint(self, option, index):
return QSize(32,32)
Затем, в другом месте:
delegate = MyDelegate()
tree = QTreeWidget()
tree.setItemDelegate(delegate)
Не идеально, так как изменяет размер каждой строки.
[edit] Если вы хотите изменить размер строк, убедитесь, что QTreeWidget / View.uniformRowHeights == False
Тогда возитесь с помощью индекса. Для меня я хотел, чтобы второй ряд был больше остальных. Я уверен, что есть лучший способ, но мой sizeHint стал:
def sizeHint(self,option,index):
parent = index.parent()
if parent.isValid() and not parent.parent().isValid():
return QSize(32,32)
return QSize(24,24)
Однако есть еще одна проблема с этим. Значки не могут быть изменены. Ах! Это должно быть сделано с
QTreeWidget.setIconSize(QSize(width,height))