セカンダリスレッドでWindowsからファイルのサムネイルを抽出していますが、出力はHBITMAPです。これをQImageに変換して、メインスレッドに送り返す必要があります。すでにご存知かもしれませんが、GUI以外のスレッドでQPixmapを使用すると、ランタイムエラーとコンパイル時の警告が発生します。私はそれを使おうとしたので知っています、そしてそれは私にランダムなエラーを与えました。
任意のアイデアをいただければ幸いです。
セカンダリ スレッドでサムネイルを抽出するときに、メイン スレッドに戻るまで HBitmap を保存しないのはなぜですか?
したがって、QPixmaps の代わりに HBitmaps のコレクションをコンテナーとして使用するだけです...
(ドキュメントを読むと、QPixmaps を使用せずにタスクを達成する簡単な方法があるようには見えません)。
追加のオプション (レンダリング時に上記のルートが遅すぎることが判明した場合) は、メイン スレッドに HBitmap リストを定期的にチェックさせ、セカンダリ スレッドが短いリストを作成するプロデューサー コンシューマー モデルのような変換を行うことです。 HBitmaps と、タイマーのメイン スレッドが移動して変換します。これは、たくさんのサムネイルを見ている場合にのみ必要です...
これを行う 3 つ目の方法は、Qt の外に出て、これらのビットマップをキャッシュする別の方法、または QImage に変換できる中間変換を見つけることです。Qt のソースにアクセスして、fromWinHBITMAP()
実装方法を確認し、独自のものを作成することもできます。
それが役立つことを願っています。