web-dev-qa-db-ja.com

Qtqrcリソースファイル-アイコンを読み込めません

Qt5デスクトッププロジェクトがあり、Qt Creatorエディターを使用して「resource.qrc」ファイルを追加しました。これにより、プロジェクトの.proファイルに次の行が作成されました。

RESOURCES = resource.qrc

空白のプレフィックスとpngファイル(14x14)を入れて、次のように使用しようとしました。

QPixmap pixmap = QPixmap ("://my_image.png");
ui->combobox->addItem(QIcon(pixmap), "itemname");

問題は、アイコンが表示されないことです。

次の作品:

QPixmap pixmap(14,14);
pixmap.fill(QColor("red"));
ui->combobox->addItem(QIcon(pixmap), "itemname");

したがって、問題はリソースの埋め込みプロセスにあるはずです。生成された「exe」にはリソースセクションが含まれていないことに気付きました...静的にリンクされた外部ライブラリがないため、必要ないと思います。 Q_INIT_RESOURCE(resource)マクロ(未定義の外部を提供します)

更新:ここに私のqrcファイルを投稿しています:

<RCC>
    <qresource prefix="/">
        <file>my_image.png</file>
    </qresource>
</RCC>

とてもシンプルで、実行時にアイコンが表示されない理由がわかりません

12
Johnny Pauling

@Nikos C.は有益なアドバイスを提供しますが、あなたの主な問題は、リソースへの正しいリンクを使用しなかったことだと思います。

コードには、次のものがあります。

QPixmap pixmap = QPixmap ("://my_image.png");

しかし、 documentation によると、

QPixmap pixmap = QPixmap (":/my_image.png");

または、リソースにエイリアスを付けて、代わりにそれらを使用することもできます。

12
troyane

最近、同じ問題が発生し、リソース文字列の形式が正しくありませんでした。現在のバージョンのQtCreatorを使用している場合は、編集用に.qrcファイルを開いて、アドレス指定しようとしているリソース(この場合は画像)を右クリックし、[リソースパスをクリップボードにコピー]をクリックします。そして出来上がり、あなたは毎回正しいリソース文字列を持っています。

QtCreatorは素晴らしいです。

お役に立てれば!

23
Terrabits

問題は、rcc.exe C:\ root\QT> c:\ root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cppを使用することで解決されます。コンパイル中は、パスにイメージが含まれている必要があります。 qtresources.cppファイルを作成し、このファイルをmakefileまたはプロジェクトに含めます。画像が見えるはずです。

0
Raj