[Interest] Seeking tips on restoring application geometry

Jason H jhihn at gmx.com
Tue Aug 4 19:56:22 CEST 2015


When I last did this (about a decade ago) I used QSettings, and had to check if the coordinates were valid in case the monitor configuration changed. If none were out of bounds (negative or > max) then the configuration was considered valid. If invalid, it positioned itself on the default monitor.

Please be careful though. I hate it when an app positions its title bar off screen then have to use alt-space,m,(arrow keys) to bring it back down. (I've been using that trick since the 90's when MS Office apps had a bug. (Changing monitor sizes) ) 


> Sent: Monday, August 03, 2015 at 12:41 PM
> From: "Murphy, Sean" <smurphy at walbro.com>
> To: "interest at qt-project.org" <interest at qt-project.org>
> Subject: [Interest] Seeking tips on restoring application geometry
>
> I'm trying to be helpful to my users and restore window geometry between sessions, but I was looking for advice on how to go about that. My application is an internal engineering tool, that is usually used on laptops that routinely bounce between being used as a standalone laptop in a lab setting (so using the laptop monitor only) and being connected to external monitor(s) back at the user's desk. 
> 
> I've already found QWidget::saveGeometry() and QWidget::restoreGeometry(). So my original attempt was to use saveGeometry() in my mainwindow's destructor, and restoreGeometry() in the mainwindow's constructor. The downside to this is that it's pretty common to have the user quit the application on the bigger desktop, and then relaunch on the smaller desktop where the geometry I'm attempting to restore doesn't exist. I know in QWidget::restoreGeometry()'s documentation there's this: "If the restored geometry is off-screen, it will be modified to be inside the available screen geometry.", so at least I don't have to worry about the application not being visible going from big desktop to small, but it doesn't really help when going from small to big.
> 
> I'm kind of leaning towards saving multiple geometries in my settings based on the current desktop size, so that the user can set one geometry for the laptop-only case, set a different geometry for the external monitor(s) case, and have the application remember those settings independently. I'm just not sure if I'm overlooking an obvious pitfall with this approach?
> 
> Sean
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
> 



More information about the Interest mailing list