我感觉自己想念一些非常明显的东西,但是找不到任何东西。
我有一个自定义项目委托,我将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)
答案 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)