【发布时间】:2009-03-25 09:28:12
【问题描述】:
我正在寻找一种在 Qt 应用程序中保留窗口大小的方法。
我已经看到可以对每个小部件使用以下方法:
saveGeometry()
但实际上,我不觉得这是一种令人满意的方法。有setAutosaveGeometry(True)之类的吗?
我特别在寻找一种方法来存储表格列的宽度。
【问题讨论】:
我正在寻找一种在 Qt 应用程序中保留窗口大小的方法。
我已经看到可以对每个小部件使用以下方法:
saveGeometry()
但实际上,我不觉得这是一种令人满意的方法。有setAutosaveGeometry(True)之类的吗?
我特别在寻找一种方法来存储表格列的宽度。
【问题讨论】:
QHeaderView 类还有两种方法可以在 QByteArray 中保存和恢复其状态:saveState() 和 restoreState()
可以通过 HorizontalHeader() 和 verticalHeader() 方法访问表格视图的标题。
【讨论】:
saveGeometry 返回一个 QByteArray 值,您需要将它存储在某个地方。
例子:
void MainWindow::closeEvent(QCloseEvent *event){
QSettings 设置;
settings.setValue("几何", saveGeometry());
}
要读取几何图形,请调用 restoreGeometry 函数:
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) {
[...]
QSettings 设置;
restoreGeometry(settings.value("geometry").toByteArray());
[...]
}
要了解有关窗口几何形状的更多信息,请阅读the documentation
【讨论】:
请参阅Restoring a Window's Geometry 上的 Qt 文档。
【讨论】: