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

时间:2020-04-22 16:32:22

标签: python pyside2 qitemdelegate sizehint

我感觉自己想念一些非常明显的东西,但是找不到任何东西。

我有一个自定义项目委托,我将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)

1 个答案:

答案 0 :(得分:2)

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