0

我觉得我错过了一些非常明显的东西,但找不到任何东西。

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

1 回答 1

1

“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)
于 2020-04-22T16:51:00.830 回答