2011-06-29 13 views
3

QT 4.7.0を使用しています。私はWindowsでプロジェクトを作成しました。私はボタンにいくつかのアイコンを使用していますが、別のWindowsマシンに.exeファイルを移動するとアイコンが表示されません。開発マシン上でプログラムを実行すると、アイコンが表示されます。Qt/C++:プログラムがウィンドウ下で実行されているときにアイコンが表示されないO.S

qrcファイルを作成し、アイコンを追加しました。

答えて

5

おそらく、あなたにプラグインの問題があります。 QTには多くのプラグインが付属しており、アプリケーションは新しいターゲットでそれらを見つけることができません。

チェックアウト this thisリンクを参照してください。プラグインを新しいターゲットにコピーし、qt.confメソッドを使用してプラグインのパスを指定します。

+0

ここに例を掲載できますか? –

3

あなたのコードはリソースバンドルのアイコンを参照する必要があり、ハードディスクパスのアイコンは参照しないでください。 Depends.exeはとターゲット・マシン上のデバッグバージョンをプロファイリング

QIcon icon(":/resources/icon.ico"); 

なく

QIcon icon("resources/icon.ico"); 

OrcunCや私の推測が正しいかどうか、あなたが表示され役立ちます。

+0

私はQIconアイコンを試しています( ":/ resources/icon.ico");何も変更はありません –

+0

これは正しい方法です。それが失敗した場合は、デバッガのQIconコンストラクタに進んでください(Qtライブラリのデバッグバージョンを使用) –

+0

シンプルなアイコンファイルや、svg/jpegのようなもっと複雑なものを使用していますか? qrcをコンパイルして、qrcコンパイルの出力をコンパイル/リンクしましたか? – Jens

0

問題を解決する別の方法は、私はあなたが実行時にDLLをプラグイン画像をリンクする必要があると思うqrs

1

です。

あなたのQtディレクトリからプラグインフォルダに必要なdllを展開ディレクトリにコピーして読み込みます。

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    QString sDir = QCoreApplication::applicationDirPath(); 

    a.addLibraryPath(sDir+"/plugins"); 

    //*********** do your things 

    return a.exec(); 
} 
+0

すべてを含める必要はありません。あなたが必要とするものだけ。プラグイン\ imageformatsの下のQtソースフォルダを見てください。 DLLの束があります。この答えは説明のため、リンクする必要はありません。実行時に見つけてください。たとえば、icoファイルを使用している場合は、qico4.dllが必要です。 jpegをロードする場合は、qjpeg4.dllが必要です。上記の答えはQtに必要な場合にプラグインを探す場所を教えてくれます。 – Liz

+0

@Lizそれを拡張していただけますか?私はqico4.dllに問題があると信じています。[Windows上に表示されない.icoアイコン](http://stackoverflow.com/q/13891591/341970) – Ali

+0

私はあなたを確認したときに、あなたがあなたの答えを得たように思えます。 – Liz

0

現在解決できない場合はこのページをご覧ください。

クリックSetting the Application Icon on Windows.

+1

そのページへのリンクを提供してもそれは答えではありません。コメントでも彼を助けることができます:-) –

関連する問題