是因为verticalScrollMode问题。它有两种形式,一种默认按每次一个item滚动,另一个默认按每次一个像素滚动。修改下按像素滚动就好了
listWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
本来只有上面一种情况,当我把QListWidget拉伸后,发现把滚动条拉到底部会出现下方留白的问题,经过目测,留白区域就是现在的高度减去原有的高度。换句话说,就是之前添加自定义item后显示的区域,在resize后保留到最后一段仍然只显示到原来的位置(其他时候还是按新的高度充满item)。
最直接解决办法:查阅qt帮助手册,可以使用下面函数,更新所有itemWidget的布局:
listWidget->updateGeometries();