Qt でウィジェットのサイズを復元する簡単な方法はありますか?

StackOverflow https://stackoverflow.com/questions/680844

  •  22-08-2019
  •  | 
  •  

質問

Qt アプリでウィンドウのサイズを保持する方法を探しています。

すべてのウィジェットに対して次のメソッドを使用できる可能性があることがわかりました。

saveGeometry()

しかし、実際のところ、私はこれが満足のいく方法だとは思っていません。のようなものはありますか setAutosaveGeometry(True)?

特にテーブルの列の幅を保存する方法を探しています。

役に立ちましたか?

解決

QHeaderView クラスには、QByteArray に状態を保存したり、QByteArray から状態を復元したりするための 2 つのメソッドもあります。saveState()およびrestoreState()

テーブル ビューのヘッダーには、horizo​​ntalHeader() メソッドとverticalHeader() メソッドを介してアクセスできます。

他のヒント

saveGeometryは、あなたがどこかに格納する必要があり、QByteArray値を返します。

例:

void MainWindow::closeEvent(QCloseEvent *event){
    QSettings settings;

    settings.setValue("geometry", saveGeometry());
}

ジオメトリコールを読んrestoreGeometry機能に関してます:

MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) {
    [...]

    QSettings settings;

    restoreGeometry(settings.value("geometry").toByteArray());

    [...]
}

をお読みください窓の形状の詳細については、ドキュメント

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top