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

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

saveGeometry()

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

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

有帮助吗?

解决方案

标题视图 该类还有两种方法用于在 QByteArray 中保存和恢复其状态: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());

    [...]
}

要了解有关窗户几何形状的更多信息,请阅读 文档

请参阅 Qt 文档 恢复窗口的几何形状.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top