Russian Qt Forum
Сентябрь 30, 2024, 12:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWindowStateChangeEvent - не могу отловить максимизацию окна  (Прочитано 5141 раз)
spectre71
Гость
« : Июнь 04, 2009, 09:19 »

Помогите!
Задача определить момент максимизации окна. И запомнить его размеры и положение в нормальном режиме.
Не ловится. Может что неправильно делаю?

Код
C++ (Qt)
void MainWindow::changeEvent(QEvent * event) {
 event->ignore();
 if(event->type() != QEvent::WindowStateChange) {
   QWindowStateChangeEvent* WindowStateChangeEvent = (QWindowStateChangeEvent*)event;
   if(!(WindowStateChangeEvent->oldState() & Qt::WindowMaximized) && isMaximized()) {
     NormWidth  = width();
     NormHeight = height();
     NormX        = x();
     NormY        = y();
   }
 }      
}
 

И вообще непонятно:
Цитировать
The QWindowStateChangeEvent class provides the window state before a window state change.
Почему тогда Qt::WindowStates oldState () const
Раз ДО изменения состояния должен скорее быть "newState"
Записан
spectre71
Гость
« Ответ #1 : Июнь 04, 2009, 09:31 »

А вот проверка на минимизацию срабатывает

Код
C++ (Qt)
if(!(WindowStateChangeEvent->oldState() & Qt::WindowMinimized) && isMinimized()) {
     if(ini.options.tray.minimize) {
       event->accept();
       hide();
     }
}
 
Записан
mugabe
Гость
« Ответ #2 : Июнь 04, 2009, 09:38 »

И вообще непонятно:
Цитировать
The QWindowStateChangeEvent class provides the window state before a window state change.
Почему тогда Qt::WindowStates oldState () const
Раз ДО изменения состояния должен скорее быть "newState"
Перевод:
Класс QWindowStateChangeEvent предоставляет состояние окна которое было до его изменения.

Так что всё верно.



Цитировать
if(event->type() != QEvent::WindowStateChange) {
может быть все таки ==, а не != ?

Записан
spectre71
Гость
« Ответ #3 : Июнь 04, 2009, 10:03 »

Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.111 секунд. Запросов: 21.