-1

アプリケーションで QToolbars の位置を保存して復元する必要があります。ツールバーが別の領域にドッキングされている場合、その領域を保存して関数 QMainWindow::addToolBar に割り当てることができます。しかし、複数のツールバーが同じ領域にドッキングされている場合、それらが現在どのような順序で画面に表示されているかわかりません。私は試した

QList<QToolBar*> toolbars = findChildren<QToolBar*>();

しかし、これはツールバーを作成順に返すようであり、現在画面上にどのように配置されているかではありません (ユーザーはそれらを移動できます)。

4

1 に答える 1

1

Qt でやりたいことを簡単かつ直接的に行う方法があります。QMainWindowという方法saveState()があります

このメインウィンドウのツールバーとドックウィジェットの現在の状態を保存します。

そしてrestoreState()その逆の方法。

詳細については、こちらをご覧ください

QMainWindowのジオメトリ自体を保存および復元するには、引き続きQWidget::saveGeometry()および を使用できますQWidget::restoreGeometry()

saveState()のドキュメントにもある、両方を組み合わせた例:

ウィンドウが閉じたときにジオメトリを保存するには、次のような close イベントを実装できます。

void MyMainWindow::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
    QMainWindow::closeEvent(event);
}
于 2015-05-02T01:16:09.547 に答える