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