Resizable/Collapsible widget arrangements can be done using QSplitter.
Potentially also QDockWidget
For tabs either QTabWidget or QTabBar
For the Shelves either QToolBar or QToolButton in a horizontal layout in some other container widget.
Cheers,
_
Bookmarks