2011-01-18 9 views
2

Qtreewidget 내의 항목에 대한 아이콘 크기는 어떻게 설정합니까? 지금까지 나는 QTreeWidget에서 아이콘 크기를 설정하는 방법은 무엇입니까?

QTreeWidget.setIconSize(QSize(32,32))

을 시도했지만 않는 것을 모두 폭이 아닌 높이를 증가이다. 그러나

하는

print QTreeWidget.iconSize()

올바른 결과를 보여줍니다 이 PyQt4.QtCore.QSize(32, 32)

사람이 QTreewidget의 작동 방식에 대한 이해를 가지고 있는가가?

답변

4

제이슨은 몇 가지 해결책을 제시했습니다. 트 리뷰의 행의 높이뿐만 아니라 크기를 조정해야합니다 :

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) 

적합하지 않음으로.

[편집] 인덱스를 사용하여 주위 == 거짓 그리고

혼란을 QTreeWidget/View.uniformRowHeights을 위해 행의 크기를 변경하십시오. 나를 위해 나는 나머지 부분보다 큰 두 번째 줄을 원했다. 더 나은 방법이 있지만 크기가 틀림 없습니다.

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

이것은 매우 도움이된다! 감사. 흥미롭게도 그 델리게이트 크기를 어떻게 알릴 수 있습니까? 내 QTreeWidgetItem 안에있는 버튼을 클릭하여 위젯 높이/크기를 새로 고침하고 싶습니다. 어떻게 연결할 수 있습니까? – Dariusz

0

큰 아이콘을 수용하기 위해 QTreeView의 행 높이를 조정해야하는 것처럼 보입니다. 그림에서 볼 수 있듯이 아이콘의 크기가 적절하게 조정 된 것처럼 보이지만 행이 충분히 크지 않고 아이콘이 잘리고 있기 때문입니다. 행 높이를 변경하는 방법은 this을 참조하십시오.

+0

건배, 정말 도움이 함께 할 수있다. 완전히 완전하지는 않지만. 두 번째 레벨 (앨범 수준) 만 더 커야합니다. 지금까지 나는 모든 행을 더 커 보이도록 만들었지 만, 나는 약간의 추가 연구/실험을 통해 그것을 정리할 수 있을지도 모른다. – regomodo

+0

item delegate의 sizeHint() 함수를 재정의해야합니다. 당신은'sizeHint()'함수에 전달 된'QModelIndex'에서 나무에있는 곳을 알 수 있고 2 단계에서 더 큰 크기를 반환 할 수 있습니다. 'index.parent()'가 빈'QModelIndex()'를 리턴하는지 아닌지 테스트함으로써 2 레벨에서 테스트 할 수 있습니다. –

+0

반환되는 QModelIndex를 사용했지만 색인은 항상 동일합니다. print index.parent(). data(). toString() 항상 show는 똑같습니다. 아무것도. 이 모든 잘못에 대해 갈 수 있습니다; QTreeWidgetItem.setSizeHint (self, int column, QSize size) – regomodo

관련 문제