4

qtでjpg画像を表示する際に厄介な問題があります。Windows 7 で Visual Studio 2008 を開発し、Qt バージョン 4.8.2 を使用しています。ここで、Qt (../examples/graphicsview/collidingmice) で提供される「衝突するマウス」の例を使用して、私の問題について説明します。

この例は、Visual Studio IDE または Visual Studio コマンド プロンプトを使用してビルドできます。この例では、jpg が背景として使用され、デバッグ実行可能ファイルを実行すると正しく表示されます。ただし、リリース ビルドでは、この背景 jpg は表示されません。

Qt はさまざまな画像の読み込み/表示にプラグインを使用していることにすでに気付きました。そのため、Qt のプラグイン フォルダーの内容をアプリケーション ディレクトリ (collidingmice.exe がある場所) にコピーしました。残念ながら、これでは問題は解決しません。

したがって、Qt ビルドと jpeg ライブラリに何か問題があるに違いないと思いました。したがって、Visual Studio コマンド プロンプトで次のコマンドを実行して、Qt を再構成しました。

nmake distclean
configure -debug-and-release -opensource -platform win32-msvc2008 -qt-libjpeg -no-webkit
nmake

その後、例の再構築を行いましたが、再び jpg 画像は表示されません。デバッグ ビルドで動作し、リリースでは必要なプラグイン DLL を提供するだけでよいと思うので、何が問題なのかわかりません。しかし、明らかに私は正しくありません。

誰かが私を助けてくれるか、問題がどこにあるのかヒントを教えてくれることを願っています. ありがとう!

4

1 に答える 1

7

そのため、Qt のプラグイン フォルダーの内容をアプリケーション ディレクトリ (collidingmice.exe がある場所) にコピーしました。

プラグインを「imageformats」サブディレクトリに配置する必要があります。

bin
 ├── collidingmice.exe
 └── imageformats
       ├── qjpeg4.dll
       ├ ...

http://www.qtcentre.org/threads/46927-Location-of-imageformats-directoryも参照してください


それに応じて、OPがすでにディレクトリ構造を設定していることが判明しました。根本的な原因は、間違った QtGui4.dll が読み込まれたことです。これは、「DLL をアプリケーション ディレクトリに直接コピーするか、PATH 環境変数のパスの順序を変更して、Qt の bin ディレクトリが QtGui4.dll を含む他のすべてのパスの前に配置されるようにすることで修正できます。」

いずれにせよ、Process Monitorはそのような問題を追跡するための優れたツールです。

于 2012-10-09T12:50:34.637 に答える