如何在QTreeWidget中设置图标大小?
如何设置QTreeWidget中项目的图标大小呢?到目前为止,我尝试过
QTreeWidget.setIconSize(QSize(32,32))
但这样做只会增加宽度,而不会增加高度。
不过,使用
print QTreeWidget.iconSize()
可以显示正确的结果:
PyQt4.QtCore.QSize(32, 32)
有没有人对QTreeWidget的工作原理有更好的理解呢?
2 个回答
1
看起来你需要调整QTreeView的行高,以便能容纳更大的图标。从图片上看,图标的大小调整得还不错,但因为行高不够,导致图标被裁剪了。你可以查看这个链接,了解如何改变行高。
7
Jason有一些解决方案。树形视图中每一行的高度也需要调整:
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设置为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))