A QDockWidget acts as a wrapper for its child widget, set with setWidget().
May be you should try to create a QWidget, put all your stuff with the layouts on it, and add that widget to the dock widget.