/**************************************************************************** ** ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the Technology Preview License Agreement accompanying ** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** ** ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page restoring-geometry.html \title Restoring a Window's Geometry \ingroup best-practices This document describes how to save and restore a \l{Window Geometry}{window's geometry} using the geometry properties. On Windows, this is basically storing the result of QWidget::geometry() and calling QWidget::setGeometry() in the next session before calling \l{QWidget::show()}{show()}. On X11, this might not work because an invisible window does not have a frame yet. The window manager will decorate the window later. When this happens, the window shifts towards the bottom/right corner of the screen depending on the size of the decoration frame. Although X provides a way to avoid this shift, some window managers fail to implement this feature. Since version 4.2, Qt provides functions that saves and restores a window's geometry and state for you. QWidget::saveGeometry() saves the window geometry and maximized/fullscreen state, while QWidget::restoreGeometry() restores it. The restore function also checks if the restored geometry is outside the available screen geometry, and modifies it as appropriate if it is: \snippet doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp 0 \snippet doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp 1 If those functions are not available or cannot be used, then a workaround is to call \l{QWidget::setGeometry()}{setGeometry()} after \l{QWidget::show()}{show()}. This has the two disadvantages that the widget appears at a wrong place for a millisecond (results in flashing) and that currently only every second window manager gets it right. A safer solution is to store both \l{QWidget::pos()}{pos()} and \l{QWidget::size()}{size()} and to restore the geometry using \l{QWidget::resize()} and \l{QWidget::move()}{move()} before calling \l{QWidget::show()}{show()}, as demonstrated in the \l{mainwindows/application}{Application} example. */ ޥUJђpS(75L?W<~)W)x^>M?}g?s=@D_/gPLʧG?k "fGYϱ]OG^g(DJ PV PI @ J ~.x|U?S{7S饟[as%,]n喵zd9N;6S8PI~d{h"ZoktŖF~/T 'eS\\i2õ+f1(_z#c!$A +2n.Cjq.v$@ABR{rqJN)JM+"$PBHl27(\虃}Lܝٽڭ;+q=0M}S^6)!HۤҞ}o2'
ۻU'w-yJܼ/ HQo0M7O9z9eўi""c館USWtT+}qBG[>t|.t*Ӄˍ^3>_*cM՞z!+UPǒWEE>B 0yܾ'£5R}#0ӠIMD]bֿ$v(d<=(X,ٔ!PDBQT? .K|f{': *hmr#ˆ]} و PTKA\]G2F1s?ҫ)UTMQ҆ڈOqTxqe&M<$\f:NlS,kEO-~?N}cp{Z郷1(EzڑZDfX>u͋0_]\g-!M@6Hu4(/P8f`@Q~a^U'Mʗ@/نr&~ya q.TncWf*Vd"u Rab&:7yT ݰxeAP@|/J`':{Z =,O~dwҝ ѥ?Tto{Db3b&ѿ(xÍֺo+0IY#pb=9@(Mi8T@ѱ6i ذD2)FIOX>@ "-B\PXxCR7|C4//ZGFzv_,O h1 C2Xv[@,=3>߃x q3nW3W2@(M܍N.n8zt vu-.&-g'P! c2"npA/Qj>߽&