3

新しいウィジェットを作成して表示し、別のアプリケーションの背後に隠します。

ウィジェットがユーザーに表示されているかどうかを確認する方法はありますか? たとえば、2 つのアプリケーションが実行されており、ユーザーに表示されている場合 (明らかに、そのうちの 1 つだけにフォーカスがあり、アクティブになっています)、両方が表示されているとします。

私がこれに興味を持っている理由は、私のウィジェットには setText() を呼び出す treewidget があるため (これは非常に高価です)、treewidget がユーザーに表示されている場合にのみ更新することでパフォーマンスを最適化したいからです。

しかし、一般的に、「ウィジェットがユーザーに表示されているかどうか」を見つける方法があるかどうかを知りたいです。

提案や代替案をありがとう。

4

3 に答える 3

2

位置、z-index に従ってウィンドウを描画するのはウィンドウ マネージャー (私が間違っていなければ) 次第なので、これは予想される動作だと思います...したがって、Qt lib はそれとは何の関係もありません。

その他のアプリケーションがいつ表示されるかを制御する場合、treewidget を手動で非表示にして、他のアプリケーションを閉じたときに再び表示できますか?

それ以外の場合は、ウィジェットの改善を試みる必要があります。ヘルプが必要な場合は、コードを提供してください:)

于 2011-08-31T16:17:15.910 に答える
1

おそらく、フォーカスに関係する何かが必要です。

http://doc.qt.io/archives/qt-4.7/qwidget.html#focus-prop

于 2011-09-01T13:24:43.093 に答える
1

QWidget::isActiveWindow()を試しましたか

于 2011-09-01T13:32:25.930 に答える