DockWidget の paintEvent

DockWidgetを継承したクラスで paintEvent を実装し、

  QPainter painter( this );
  painter.drawRect( .... )

という形で描画を行うと、floating状態だとクライアント内に描画が行われますが、dock状態だとタイトル部分に描画が重なってしまいます。なので、QDockWidgetは継承せずにそのまま生成し、中身用に用意したWidget (こっちでpaintEventを実装する) を setWidget すると良いようです。

QDockWidget* dock = new QDockWidget();
WidgetContents* w = new WidgetContents(); // 中身用のWidget
dock->setWidget( w );
addDockWidget( Qt::LeftDockWidgetArea, dock );