2011-06-20 15 views
2

私はQt 4.4を使用しています。私のアプリケーションは、タイマーを使って5秒ごとにコンテンツをリフレッシュするモードレスQDialogを開きます。それはうまく動作していますが、ダイアログが表示されていないときにリフレッシュを行わないようにしたいと思います。モードレスQDialogの可視性の決定?

私はisVisible()/isHidden()showEvent(QTimerEvent *event)/hideEvent(QTimerEvent *event)を使用してみましたが、それらは、それが最初にポップアップまたは最小化しています。また、アプリケーションのメインウィンドウの背後にある場合についての情報を明らかにされていない場合にのみ示しているように見えます。

isActiveWindow()は若干関連しているようですが、可能であればメインウィンドウの隣に開いていても表示されていても、ユーザーが積極的に使用していない場合はウィンドウを更新したいと思います。

答えて

2

これは直接サポートされているとは思えませんが、おそらく座標とfocus widgetを確認することでこの作業を行うことができます。現在のフォーカスウィジェットがメインフォーム上にあり、positionsizeに基づいて決定されたように、ダイアログとメインフォームの重複の割合がある割合以上ある場合は、更新しないでください。