QListWidget is not well suited for such a situation. Implementing a custom widget (based on QFrame or QAbstractScrollArea) would be a better approach, in my opinion. If you start manipulating items like you are doing it now, the scrollbar value will make no sense and in border situations (like the one you mention) there will be no viable solution. With a custom widget you could overcome the weaknesses. It's only a matter of deciding how much functionality of QListWidget you really need.