2

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

我试过使用isVisible()/isHidden()showEvent(QTimerEvent *event)/hideEvent(QTimerEvent *event)但它们似乎只表明它何时首次弹出或最小化,并且没有显示有关它何时位于应用程序主窗口后面的信息。

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

4

1 回答 1

2

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

于 2011-06-20T19:09:57.877 回答