¿Hay una manera sencilla para restaurar tamaños de widgets en Qt?
Pregunta
Estoy buscando una manera de preservar el tamaño de las ventanas en una aplicación Qt.
He visto que existe la posibilidad de utilizar el método siguiente para cada widget de:
saveGeometry()
Pero, en realidad, no me parece que este método sea satisfactioning. ¿Hay algo así como setAutosaveGeometry(True)
?
Estoy especialmente en busca de una manera de almacenar las anchuras de las columnas de la tabla.
Solución
La clase QHeaderView también tiene dos métodos para guardar y restaurar su estado ay de un QByteArray: saveState () y restoreState ()
cabeceras de una vista de tabla son accesibles por la horizontalHeader () y verticalHeader () métodos.
Otros consejos
saveGeometry devuelve un valor QByteArray, es necesario almacenarlo en alguna parte.
Ejemplo:
void MainWindow::closeEvent(QCloseEvent *event){ QSettings settings; settings.setValue("geometry", saveGeometry()); }
Para la lectura de la llamada geometría de la función restoreGeometry:
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) { [...] QSettings settings; restoreGeometry(settings.value("geometry").toByteArray()); [...] }
Para obtener más información acerca de la geometría ventana lea la documentación
Consulte la documentación de Qt en Restauración de geometría de una ventana .