2016-07-08 2 views
1

QtにツールバーのsetMoveableプロパティを保存するにはどうすればよいですか?Qtで(ツールバーの)setMovableを保存するには?

私はQSettingssaveState()を使用して、ツールバーの状態(位置など)を保存しています。しかし、明らかにこれはsetMoveableプロパティを保存しません。ここで

はロードのためのコードと、これまでに保存され:

void MainWindow::readSettings() 
{ 
    QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName()); 
    const QByteArray geometry = settings.value("geometry", QByteArray()).toByteArray(); 
    const QByteArray windowState = settings.value("windowstate", QByteArray()).toByteArray(); 
    if (geometry.isEmpty()) { 
     const QRect availableGeometry = QApplication::desktop()->availableGeometry(this); 
     resize(availableGeometry.width()/3, availableGeometry.height()/2); 
     move((availableGeometry.width() - width())/2, 
      (availableGeometry.height() - height())/2); 
    } else { 
     restoreGeometry(geometry); 
    } 
    if (!windowState.isEmpty()) { 
     restoreState(windowState); 
    } 
} 

void MainWindow::writeSettings() 
{ 
    QSettings settings(QCoreApplication::organizationName(), QCoreApplication::applicationName()); 
    settings.setValue("geometry", saveGeometry()); 
    settings.setValue("windowState", saveState()); 
} 
+0

ツールバーにオブジェクト名がありますか?別のオプションが記憶されていますか? – ilotXXI

+0

はい、彼らは名前と他のオプションが記憶されています。 – Daniel

+1

愚かなバグのように見えるので、バグレポートを提出してください。 – peppe

答えて

3

私は

QSettings settings(...); 
settings.setValue("movable", toolbar->isMovable()); 

toolbar->setMovable(settings.value("movable", false).toBool()); 
ようなものを使用して、自分でそれらを格納する必要があると思います

とし、

のように QToolbarあなたもここのグループのような設定をグループ化するのに役立ちます

settings.beginGroup("QToolbar"); 
// access settings here (store/load) 
settings.endGroup(); 

を気にいらを使用することができます

QToolbar *toolbar; 

注意。

+0

ありがとう。私は 'fileToolBar'のような特定のツールバーで' QToolbar'を置き換えなければならないと思います。そして、各ツールバーの保存/読み込みを行うか、それとも何らかの方法ですべてのツールバーの状態を保存しますか?私は 'settings.setValue(" movable "、fileToolBar.isMovable());を試しましたが、' C:\ Users \ Daniel \ qt \ application \ mainwindow.cpp:374:エラー:C2228: '.isMovable' 374:エラー:C2660: 'QSettings :: setValue':関数が1つの引数を取ることはありません。 – Daniel

+0

@ダニエルまず、あなたの出題が正しいです。 2番目のエラーは最初のエラーの結果であることに注意してください。変数 'fileToolBar'は' QToolBar'であり、コンテキストでアクセス可能です。 – maxik

+0

'settings.setValue(" movable "、fileToolBar-> isMovable());'で保存し、 'fileToolBar-> setMovable(settings.value(" movable "、false).toBool());でロードします。それは私の特別な設定ですか、あなたの答えを編集したいですか? – Daniel

関連する問題