10

The Qt Resource Systemガイドに従ったところ、.ico アイコンが Linux に表示されました。

Qt Creator からアプリケーションを実行しようとすると、Windows にアイコンが表示されません。

Qt/C++に基づくプラグインの問題が疑われます: Windows OS でプログラムを実行するとアイコンが表示されませんが、ガイドHow to Create Qt Pluginsから何をすべきかわかりませんでした。

プラグインの問題ですか、それとも Windows でアイコンが表示されないのはなぜですか?

プラグインの問題の場合: qico.dll の場所をアプリケーションに伝えるにはどうすればよいですか?


環境の詳細:

動作: Kubuntu 12.04 LTS、Qt Creator 2.4.1、Qt 4.7.4 (64 ビット)

失敗: Windows XP SP2 32 ビット、Qt Creator 2.4.1 および Qt 4.7.4 (32 ビット)

Everyting はデフォルト (箱から出してインストールした状態) で、私は設定をいじりませんでした。

リソース.qrc

<!DOCTYPE RCC><RCC version="1.0">
    <qresource>
        <file>images/spreadsheet.ico</file>
    </qresource>
</RCC>

も試してみました<qresource prefix="/">

applicaton.proから

RESOURCES += \
    resources.qrc

OTHER_FILES += \
    images/spreadsheet.ico

対応するソースファイルで

QIcon(":/images/spreadsheet.ico")

私もDeploying an Application on Windows に書かれているように試しました

QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");

qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();

app.addLibraryPath(plugins.absolutePath());

plugins ディレクトリの qico.dll を使用します。このアプリケーションは、プラグイン ディレクトリが存在することを出力しますが、アイコンはまだ表示されません。

繰り返しますが、Linux で動作します。

4

2 に答える 2

17

将来のグーグル訪問者のために:あなたは質問の下のコメントを読むかもしれません、なぜならこれがこの答えが生まれた場所だからです。

したがって、問題は、icoフォーマットがデフォルトでサポートさQIconれておらず、このためのプラグインが必要なことです。このような場合QImageReader::supportedImageFormats()、QIconでサポートされている形式を一覧表示する関数が役立つ場合があります。

お使いのフォーマットがサポートされていない場合はimageformats、Qtのpluginsディレクトリから実行可能ファイルが存在するディレクトリにフォルダをコピーしてみてください。アプリがフォルダー内にある場合は、c:\myappフォルダーが必要ですc:\myapp\imageformats(ではありませんc:\myapp\plugins\imageformats)。それ以外の場合は、を使用してパスを設定する必要がありますQCoreApplication::addLibraryPath

また、qico4.dllqicod4.dll(デバッグモードでビルドする場合)が存在することを確認してください。

于 2012-12-15T15:04:04.873 に答える
0

-事について詳しく説明するだけQCoreApplication::addLibraryPathです:

" plugins " フォルダを利用可能にする必要があります。サブフォルダーではありません。

Python / PySideユーザーが PySide パッケージの場所を使用する方法を次に示します。すでにインスタンスがある場合は、ここにQtGui.QApplicationあるインスタンスをそのまま使用することもできます。app

pyside_plugin_path = os.path.join(sys.modules['PySide'].__path__[0], 'plugins')
app.addLibraryPath(pyside_plugin_path)

そして、すでにありがとうdoc

于 2016-11-10T16:41:37.207 に答える