14

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>

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

4

3 に答える 3

25

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

QtCreatorは素晴らしいです。

お役に立てれば!

于 2013-09-10T23:23:24.340 に答える
12

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

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

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

しかし、ドキュメントによると、それは

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

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

于 2012-12-29T18:12:26.067 に答える
0

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

于 2016-09-30T15:05:12.630 に答える