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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как поймать showEvent и hideEvent для немодального (не главного) окна  (Прочитано 3836 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Октябрь 12, 2016, 14:34 »

Столкнулся с такой проблемой.

Есть главное окно программы, и есть виджет(ы), которые открыты как немодальные окна. Необходимо в этих виджетах поймать события скрытия/появления, если скрывается/появляется главное окно.

Выяснилось, что как минимум в Windows, события showEvent и hideEvent для таких QWidget не генерируются. Единственный
случай, когда генерируется событие showEvent (но не hideEvent) - это когда немодальный виджет активен при клике на панели по главному окну, чтобы оно свернулось. Для неактивных немодальных виджетов вообще showEvent и hideEvent не генерируются.

Вопрос: как таки поймать эти события?

Записан

Собираю информацию по крупицам
http://webhamster.ru
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Октябрь 13, 2016, 06:50 »

Вопрос: как таки поймать эти события?
show/hide не относится к свертке/развертке, т.е. "свернутые" окна по-прежнему считаются видимыми. Поэтому ловите QWindowStateChangeEvent
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Октябрь 14, 2016, 19:53 »

> show/hide не относится к свертке/развертке, т.е. "свернутые" окна по-прежнему считаются видимыми. Поэтому ловите QWindowStateChangeEvent

Оказывается. не все так просто, в  разных системах по-разному. И никакого "свернутые" окна по-прежнему считаются видимыми" нет.

В Windows hideEvent/showEvent не генерируется для немодальных окон, но генерируются для основного окна. Это похоже на баг.

В Linux в KDE hideEvent/showEvent генерируется и для немодальных окон, и генерируются для основного окна.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Октябрь 15, 2016, 08:20 »

И никакого "свернутые" окна по-прежнему считаются видимыми" нет.
Есть или нет - это не тот вопрос который решается голосованием Улыбающийся Ведь можно просто посмотреть (см аттач).

..в  разных системах по-разному. ..

В Windows hideEvent/showEvent не генерируется для немодальных окон, но генерируются для основного окна. Это похоже на баг.

В Linux в KDE hideEvent/showEvent генерируется и для немодальных окон, и генерируются для основного окна.
Это называется "пополнить багаж бесполезных знаний" Улыбающийся Вам нужно отловить момент свертки/развертки - ну так ответ уже прозвучал

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


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