Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Barmaglodd от Апрель 08, 2009, 08:02



Название: Восстановить состояние окна, которое было до того, как его свернули.
Отправлено: Barmaglodd от Апрель 08, 2009, 08:02
Задача банальная. Сворачиваю окно в панель задач, потом надо программно его развернуть в прежнее состояние. В 4.4.3 разворачивалось через showNormal отлично, в Qt 4.5.0 тоже разворачивается, но старые размеры не восстанавливаются. Например, до сворачивания окно было maximized, а после стало на пол экрана. Понять не могу, то ли это регрессия, то ли наоборот showNormal начал работать как задумано.


Название: Re: Восстановить состояние окна, которое было до того, как его свернули.
Отправлено: Rcus от Апрель 08, 2009, 08:59
http://techbase.kde.org/Policies/API_to_Avoid :)
Для того чтобы понять что именно делает showNormal достаточно взглянуть на ./src/gui/kernerl/qwidget.cpp:2740.
Код
C++ (Qt)
void QWidget::showNormal()
{
   ensurePolished();
#ifdef QT3_SUPPORT
   if (parent())
       QApplication::sendPostedEvents(parent(), QEvent::ChildInserted);
#endif
 
   setWindowState(windowState() & ~(Qt::WindowMinimized
                                    | Qt::WindowMaximized
                                    | Qt::WindowFullScreen));
   show();
}
 


Название: Re: Восстановить состояние окна, которое было до того, как его свернули.
Отправлено: Barmaglodd от Апрель 08, 2009, 11:10
Спасибо! :)