Either
  • subclass QScrollBar and reimplement QWidget::showEvent() and QWidget::hideEvent()
  • subclass QScrollBar and reimplement QWidget::setVisible()
  • use an event filter to catch show/hide events

react to visibility changes and make the view larger/smaller when needed.