ToolBarやDockWidgetの状態を保存する

http://d.hatena.ne.jp/QtCoder/20110810/1312993363 (設定を保存する
Qtの特徴として、ToolBarやDockWidgetを使ったアプリケーション開発が挙げられますが、これらWidgetのフローティング状態や位置・サイズを保存しておくために、restoreGeometry、saveGeometryなどのメソッドが用意されています。ウィンドウ一つ一つの設定を保存しなくても、一気に全ての設定を保存・読み込みできる、大変便利な仕組みです!最高!

// 設定を読み込む (MainWindow上で)
restoreGeometry( mSettings->value( "main/geometry" ).toByteArray() );
restoreState( mSettings->value( "main/windowState" ).toByteArray() );

// 設定を保存する
mSettings->setValue( "main/geometry", saveGeometry() );
mSettings->setValue( "main/windowState", saveState() );

保存の際、各WidgetのobjectNameを使うようで、objectNameが設定されていないと処理ができず、

QMainWindow::saveState(): 'objectName' not set for QDockWidget

のようなメッセージがコンソールに出力されます。ToolBarもDockWidgetも、setObjectName しておきましょう。