Qt 确定无模式QDialog的可视性?

Qt 确定无模式QDialog的可视性?,qt,qdialog,Qt,Qdialog,我使用的是Qt4.4,我的应用程序会打开一个无模式QDialog,使用计时器每5秒刷新一次它的内容。这很好,但我希望在对话框不可见时不要刷新 我尝试过使用isVisible()/ishiden()和showEvent(QTimerEvent*event)/hideEvent(QTimerEvent*event),但这些似乎只指示它第一次弹出或最小化的时间,而没有显示它在应用程序主窗口后面的信息 isActiveWindow()似乎表明了一个稍微相关的想法,但如果可能,如果窗口在主窗口旁边打开,并

我使用的是Qt4.4,我的应用程序会打开一个无模式QDialog,使用计时器每5秒刷新一次它的内容。这很好,但我希望在对话框不可见时不要刷新

我尝试过使用
isVisible()
/
ishiden()
showEvent(QTimerEvent*event)
/
hideEvent(QTimerEvent*event)
,但这些似乎只指示它第一次弹出或最小化的时间,而没有显示它在应用程序主窗口后面的信息


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

我不认为有任何直接支持,但我认为您可能可以通过检查坐标和位置来实现这一点。如果当前焦点小部件位于主窗体上,并且对话框和主窗体之间的重叠超过某个百分比(根据它们的and确定),则不刷新