[Solved]Why does restoreGeometry return false?
-
wrote on 1 Feb 2013, 18:15 last edited by
I have an application that saves its window state on shutdown using saveGeometry, and restores them on startup using restoreGeometry, all persisted using QSettings.
This aspect works just fine.
However, I'm now trying to implement the ability to restore the application to its 'default' state via a menu action. What I'm finding is that when the application is in the state where I'm trying to do this, restoreGeometry returns false.
I'd guess that this is the expected behavior, but if that's the case, how can I cause my widget to re-layout its components after it has already been displayed?Thanks.
-
wrote on 2 Feb 2013, 06:24 last edited by
Hi there, I have absolutely no problem in achieving what you're setting out to do, but I'm using restoreState(). Example snippets:
@
/* On first run, save the default settings to the registry/ini/xml. */
QSettings settings( ORGANISATION, APPLICATION );if( !settings.contains( "defaultState" ) )
{
settings.setValue( "defaultState", saveState() );
}
@And then simply connect your action to a slot such as:
@
void MainWindow::restoreDefaults()
{
QSettings settings( ORGANISATION, APPLICATION );
restoreState( settings.value( "defaultState" ).toByteArray() );
}
@ -
wrote on 4 Feb 2013, 13:32 last edited by
Thanks for your response, it helped me realize that it was the contents of the restoreGeometry (and restoreState) function calls that I was making that was causing it to return false, rather than the "state" that the application was in.
-
wrote on 4 Feb 2013, 14:19 last edited by
Good stuff! :)
Please edit your original post and mark the thread as "Solved" ;)
-
wrote on 4 Feb 2013, 15:00 last edited by
for posterity, I was doing a
@ Settings.remove("key")@followed by a
@restoreState(settings.value( "key" ).toByteArray() )@
In an attempt to restore to the default, which didn't work.
1/5