Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: sinbad7 от Октябрь 11, 2011, 10:53



Название: Положение окна программы
Отправлено: sinbad7 от Октябрь 11, 2011, 10:53
Привет всем.
Нужно запоминать положение окна программы при закрытии и восстанавливать его при запуске программы.


Название: Re: Положение окна программы
Отправлено: Пантер от Октябрь 11, 2011, 10:55
Код
C++ (Qt)
void MainWindow::loadSettings ()
{
QSettings settings;
settings.beginGroup ("GUI");
settings.beginGroup ("MainWindow");
 
const QPoint pos = settings.value ("pos").toPoint();
 
if (!pos.isNull()) {
move (pos);
}
 
settings.endGroup();
settings.endGroup();
}
 
void MainWindow::saveSettings ()
{
QSettings settings;
settings.beginGroup ("GUI");
settings.beginGroup ("MainWindow");
 
settings.setValue ("pos", pos());
 
settings.endGroup();
settings.endGroup();
}
 


Название: Re: Положение окна программы
Отправлено: GreatSnake от Октябрь 11, 2011, 11:02
2 Пантер
А
Код
C++ (Qt)
QByteArray QWidget::saveGeometry () const
bool QWidget::restoreGeometry ( const QByteArray & geometry )
для кого сделаны?


Название: Re: Положение окна программы
Отправлено: Пантер от Октябрь 11, 2011, 11:08
С ним какой-то косяк был, не помню уже. Вроде, проблема была при сохранении параметров развернутости окна.


Название: Re: Положение окна программы
Отправлено: GreatSnake от Октябрь 11, 2011, 11:12
С ним какой-то косяк был, не помню уже. Вроде, проблема была при сохранении параметров развернутости окна.
В любом случае в твоём примере нет сохранения/восстановления размеров окна. Какой смысл хранить только позицию? Разве что для окна с фиксированным размером, но это особенный случай)


Название: Re: Положение окна программы
Отправлено: Пантер от Октябрь 11, 2011, 11:15
GreatSnake, да какая разница? Был вопрос про сохранение/восстановление положения окна - я ответил. Твое решение тоже правильное, но сохраняет не только положение.


Название: Re: Положение окна программы
Отправлено: GreatSnake от Октябрь 11, 2011, 11:17
GreatSnake, да какая разница?
Да это я так, типа придираюсь)


Название: Re: Положение окна программы
Отправлено: Пантер от Октябрь 11, 2011, 11:23
Как там называется человек, который всех критикует? ;)


Название: Re: Положение окна программы
Отправлено: Авварон от Октябрь 11, 2011, 11:31
Баг был с тем, что на маке в геометрию не входит ширина тулбара. Окно каждый раз становится меньше по высоте.


Название: Re: Положение окна программы
Отправлено: sinbad7 от Октябрь 11, 2011, 13:29
Спасибо всем кто откликнулся, попробую оба варианта, мне в принципе достаточно положения на экране, а размеры не так важны


Название: Re: Положение окна программы
Отправлено: iroln от Октябрь 11, 2011, 19:03
А как определить, на каком мониторе закрылось максимизированное окно, чтобы потом его восстановить на том же самом мониторе, на котором оно закрылось?


Название: Re: Положение окна программы
Отправлено: GreatSnake от Октябрь 11, 2011, 19:23
А как определить, на каком мониторе закрылось максимизированное окно, чтобы потом его восстановить на том же самом мониторе, на котором оно закрылось?
Код
C++ (Qt)
int QDesktopWidget::screenNumber ( const QWidget * widget = 0 ) const


Название: Re: Положение окна программы
Отправлено: sinbad7 от Октябрь 12, 2011, 07:08
Использовал способ readSettings и writeSettings как в примере Application, немного подпилил и заработало.
GreatSnake и Пантер спасибо большое