Название: Как отловить изменение свойства maximized у окна? Отправлено: Ground от Июнь 19, 2012, 15:43 Доброго времени суток!
Подскажите, как отловить действие пользователя, обратное разворачиванию на весь экран ("Свернуть в окно"). Мне нужно установить для окна фиксированный размер после этого действия. Я как-то попробовал поработать с changeEvent, получилось из этого примерно следующее: Код Но не работает. Причем не работает странно. Если нажать на кнопку "Свернуть в окно", то окно не меняет размеров. А если отдернуть от края экрана (в Win7), то размер меняется. В чем может быть дело? Вот дебаго-вывод: Код Кто-то шлет второй сигнал для восстановления в состояние, в котором было окно до разворачивания. Название: Re: Как отловить изменение свойства maximized у окна? Отправлено: mutineer от Июнь 19, 2012, 16:39 может QMainWindow::changeEvent(event) ресайзит в нормальное состояние?
Название: Re: Как отловить изменение свойства maximized у окна? Отправлено: Ground от Июнь 19, 2012, 16:41 Пробовал вот так:
Код Результат один и тот же. А можно как-нибудь узнать размер, который окно займет в maximize состоянии, не разворачивая его? Название: Re: Как отловить изменение свойства maximized у окна? Отправлено: Ground от Июнь 20, 2012, 03:02 Решил проблему следующим кодом:
Код
Добавляем переменную QSize mFullScreenSize, где сохраняем размер экрана в полноэкранном режиме. Далее в событии проверяем, равен ли старый размер окна - mFullScreenSize. Если равен, событие дальше не пропускаем, а меняем значение размера на нужную нам величину. |