[Solved]Why does restoreGeometry return false?



  • 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.



  • 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() );
    }
    @



  • 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.



  • Good stuff! :)

    Please edit your original post and mark the thread as "Solved" ;)



  • 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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.