我有两个实现了sizeHint成员函数的自定义委托,如下所示:
QSize MovieListPosterDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &) const
{
return {option.rect.width(), 80};
}
QSize MovieListTextDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &) const
{
return {option.rect.width(), 40};
}
如果我先设置文本委托,则行高为40px。如果我先设置海报代表,则行高为80px。但是,如果在设置一个之后尝试将其更改为另一个,则行高不会改变,例如:
首先,让我们设置发帖人代表,一切正常:
然后将其更改为文本委托:
如您所见,还有40px的额外空间不会消失。而且,如果我尝试用另一种方式(从文本到海报委托)进行操作,那将是一团糟。我需要视图来正确调整行高。如何?谢谢。
QAbstractItemView::reset()
更改委托后,使用该方法重置视图的内部状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句