Название: Как поймать showEvent и hideEvent для немодального (не главного) окна Отправлено: xintrea от Октябрь 12, 2016, 14:34 Столкнулся с такой проблемой.
Есть главное окно программы, и есть виджет(ы), которые открыты как немодальные окна. Необходимо в этих виджетах поймать события скрытия/появления, если скрывается/появляется главное окно. Выяснилось, что как минимум в Windows, события showEvent и hideEvent для таких QWidget не генерируются. Единственный случай, когда генерируется событие showEvent (но не hideEvent) - это когда немодальный виджет активен при клике на панели по главному окну, чтобы оно свернулось. Для неактивных немодальных виджетов вообще showEvent и hideEvent не генерируются. Вопрос: как таки поймать эти события? Название: Re: Как поймать showEvent и hideEvent для немодального (не главного) окна Отправлено: Igors от Октябрь 13, 2016, 06:50 Вопрос: как таки поймать эти события? show/hide не относится к свертке/развертке, т.е. "свернутые" окна по-прежнему считаются видимыми. Поэтому ловите QWindowStateChangeEventНазвание: Re: Как поймать showEvent и hideEvent для немодального (не главного) окна Отправлено: xintrea от Октябрь 14, 2016, 19:53 > show/hide не относится к свертке/развертке, т.е. "свернутые" окна по-прежнему считаются видимыми. Поэтому ловите QWindowStateChangeEvent
Оказывается. не все так просто, в разных системах по-разному. И никакого "свернутые" окна по-прежнему считаются видимыми" нет. В Windows hideEvent/showEvent не генерируется для немодальных окон, но генерируются для основного окна. Это похоже на баг. В Linux в KDE hideEvent/showEvent генерируется и для немодальных окон, и генерируются для основного окна. Название: Re: Как поймать showEvent и hideEvent для немодального (не главного) окна Отправлено: Igors от Октябрь 15, 2016, 08:20 И никакого "свернутые" окна по-прежнему считаются видимыми" нет. Есть или нет - это не тот вопрос который решается голосованием :) Ведь можно просто посмотреть (см аттач). ..в разных системах по-разному. .. Это называется "пополнить багаж бесполезных знаний" :) Вам нужно отловить момент свертки/развертки - ну так ответ уже прозвучалВ Windows hideEvent/showEvent не генерируется для немодальных окон, но генерируются для основного окна. Это похоже на баг. В Linux в KDE hideEvent/showEvent генерируется и для немодальных окон, и генерируются для основного окна. |