如何在QTreeWidget中设置图标大小?

时间:2011-01-18 22:29:13

标签: python qt pyqt

如何为Qtreewidget中的项目设置图标大小?到目前为止我已经尝试了

QTreeWidget.setIconSize(QSize(32,32))

但所有这一切都是增加宽度,而不是高度。

但是,

print QTreeWidget.iconSize()

显示正确的结果: PyQt4.QtCore.QSize(32, 32)

有没有人更了解QTreewidget的工作原理?

2 个答案:

答案 0 :(得分:3)

杰森有一些解决方案。树视图行的高度也需要调整大小:

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

然后使用索引搞乱。对我来说,我希望第二排比其他排更大。我确信有更好的方法,但我的尺寸提示成了:

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

答案 1 :(得分:0)

在我看来,您需要调整QTreeView的行高以容纳更大的图标。从我在图片中看到的内容来看,图标看起来正确调整大小,但因为行不够高而且图标正在裁剪。有关如何更改行高的信息,请参阅this