有没有一种简单的方法来恢复Qt中的小部件大小?

时间:2009-03-25 09:28:13

标签: qt qtgui

我正在寻找一种在Qt应用程序中保留窗口大小的方法。

我已经看到有可能为每个小部件使用以下方法:

saveGeometry()

但实际上,我并不认为这是一种令人满意的方法。是否有类似setAutosaveGeometry(True)的内容?

我特别想找一种存储表格列宽度的方法。

3 个答案:

答案 0 :(得分:4)

QHeaderView类还有两种方法可以保存和恢复QByteArray的状态:saveState()和restoreState()

可以通过horizo​​ntalHeader()和verticalHeader()方法访问表格视图的标题。

答案 1 :(得分:0)

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());

    [...]
}

要了解有关窗口几何的更多信息,请阅读the documentation

答案 2 :(得分:0)

请参阅Restoring a Window's Geometry上的Qt文档。