Определение видимости немодального QDialog? - PullRequest
2 голосов
/ 20 июня 2011

Я использую Qt 4.4, и мое приложение открывает немодальный QDialog, который обновляет его содержимое каждые 5 секунд, используя таймер.Это работает нормально, но я бы хотел, чтобы обновление не происходило, когда диалоговое окно не отображается.

Я пытался использовать isVisible() / isHidden() и showEvent(QTimerEvent *event) / hideEvent(QTimerEvent *event), нокажется, что они указывают только на то, когда он впервые появился или свернут, и не дают никакой информации о том, когда он находится за основным окном приложения.Я бы хотел, чтобы окно обновлялось, если оно открыто рядом с главным окном и по-прежнему видно, но не активно используется пользователем.

1 Ответ

2 голосов
/ 20 июня 2011

Я не верю, что есть прямая поддержка для этого, но я думаю, что вы, вероятно, можете сделать эту работу, проверив координаты и виджет фокуса .Если текущий виджет фокуса находится на главной форме, и между диалоговым окном и основной формой существует более чем некоторый процент перекрытия, что определяется на основе их позиции и размера ,не обновляйся.

...