画面をキャプチャするWinとMacの両方にQt 4.8アプリケーションがあります。画面キャプチャ中にQTウィジェットをマスキングする
デスクトップにQTウィジェットがあります(常に上にあります)。はキャプチャ中にキャプチャしないでください。 QTウィジェットの代わりに、QWidgetの背後にあるアプリケーション/デスクトップをキャプチャする必要があります。私のQTアプリケーションのUIはキャプチャからマスクする必要があります。
私はこれを行う方法はありますか?
画面をキャプチャするWinとMacの両方にQt 4.8アプリケーションがあります。画面キャプチャ中にQTウィジェットをマスキングする
デスクトップにQTウィジェットがあります(常に上にあります)。はキャプチャ中にキャプチャしないでください。 QTウィジェットの代わりに、QWidgetの背後にあるアプリケーション/デスクトップをキャプチャする必要があります。私のQTアプリケーションのUIはキャプチャからマスクする必要があります。
私はこれを行う方法はありますか?
主な質問は次のとおりです。あなたはスクリーンショットを撮るかどうかを制御していますか?スクリーンショットを撮っているなら、それは実行可能だがプラットフォーム固有のものだろう。表示したくないウィンドウ以外のすべてのウィンドウの内容を取得し、そこからスクリーンショットを作成する必要があります。
WindowsのCtrl-PrtScやOS-Xのグラブなど、サードパーティ製のスクリーングラバーであれば、OSがウィジェットを非表示にするAPIをOSに提供していない限り、不運になります。
あなたが望む機能が正確に一般的ではありませんので、私はあなたが望むものを達成するためのいずれかの、ポータブル、あるいは健全な方法があります疑わしいです。
http://qt-project.org/doc/qt-4.8/desktop-screenshot.html - Qtのスクリーンショットの例この... – Mat
@Matの感謝を行います。まず第一に、私はbitBlt(http://msdn.microsoft.com/en-us/library/dd183370%28v=vs.85%29.aspx)を使用していますが、QTを使用してキャプチャしていません。私はUIを表示するためだけにQTを使用しています。 編集:第2に、このプログラムでは、キャプチャ前にhide()を使用し、キャプチャ後にshow()を使用しました。実際には、私は常にそれを見せたいので、私のコードではうまくいきません。私はスクリーンショットを取っている間にそれをマスクするために私がQWidgetに置くことができるフックがあるかどうかを知りたいです –
そうですか?それがQtのドキュメントでどのように行われているかを見て、それをあなたのスクリーンキャップの方法に適用することができます。 – Mat