为什么在sizeHint中设置的QSize高度返回高度的两倍的QRect?

问题描述 投票:0回答:1

我觉得我很想念某些东西,但是找不到任何东西。

我有一个自定义项目委托,我将sizeHint的高度设置为50,但print语句返回的矩形是高度的两倍。

def sizeHint(self, option, index):
    print("sizehint:", option.rect)
    s = QtCore.QSize()
    s.setWidth(option.rect.width())
    s.setHeight(50)
    return s

#output
sizehint: PySide2.QtCore.QRect(0, 0, 498, 100)
python pyside2 qitemdelegate sizehint
1个回答
0
投票

“ option.rect”是视图建议的矩形,考虑到委托必须作为参考的常规信息(例如,字体大小,标题的宽度等)。矩形不包含其绘制或交互作用,它不时获取每个元素的信息(您要显示的信息),因此委托人将sizeHint()作为建议的大小。实际上,如果要获取默认大小,则应使用super。

def sizeHint(self, option, index):
    default_size_hint = super().sizeHint(option, index)
    print("sizehint:", default_size_hint)
    return QtCore.QSize(option.rect.width(), 50)
© www.soinside.com 2019 - 2024. All rights reserved.