Как установить размер иконки в QTreeWidget? - PullRequest
1 голос
/ 19 января 2011

Как установить размер значка для элементов в Qtreewidget? Пока я пробовал

QTreeWidget.setIconSize(QSize(32,32))

Но все, что нужно, это увеличить ширину, а не высоту.

Однако,

print QTreeWidget.iconSize()

показывает правильный результат: PyQt4.QtCore.QSize(32, 32)

Кто-нибудь лучше понимает, как работает QTreewidget?

Ответы [ 2 ]

3 голосов
/ 19 января 2011

У Джейсона было какое-то решение. Высота строк дерева также должна быть изменена:

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))

0 голосов
/ 19 января 2011

Похоже, вам нужно отрегулировать высоту строки QTreeView для размещения значков большего размера. Из того, что я вижу на рисунках, похоже, что значки меняются должным образом, но строки не достаточно высокие и значки обрезаются. См. this о том, как изменить высоту строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...