确定无模式QDialog的可见性?

时间:2011-06-20 18:41:02

标签: qt qdialog

我正在使用Qt 4.4,我的应用程序打开一个无模式QDialog,使用计时器每5秒刷新一次内容。这工作正常,但我希望在对话框不可见时不进行刷新。

我已尝试使用isVisible() / isHidden()showEvent(QTimerEvent *event) / hideEvent(QTimerEvent *event),但这些似乎只是表明它何时首次弹出或最小化并且未显示有关当它在应用程序的主窗口后面时。

isActiveWindow()似乎表明了一个稍微相关的想法,但是如果可能的话,我想让窗口刷新,如果它在主窗口旁边打开并且仍然可见但是没有被用户主动使用。

1 个答案:

答案 0 :(得分:2)

我不相信对此有任何直接的支持,但我认为你可以通过检查坐标和focus widget来完成这项工作。如果当前焦点窗口小部件位于主窗体上,并且对话框和主窗体之间的重叠比例超过一定百分比(根据其positionsize确定),则不要刷新。