我正在寻找一种在Qt应用程序中保留窗口大小的方法。
我已经看到有可能为每个小部件使用以下方法:
saveGeometry()
但实际上,我并不认为这是一种令人满意的方法。是否有类似setAutosaveGeometry(True)
的内容?
我特别想找一种存储表格列宽度的方法。
答案 0 :(得分:4)
QHeaderView类还有两种方法可以保存和恢复QByteArray的状态:saveState()和restoreState()
可以通过horizontalHeader()和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文档。