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>
とてもシンプルで、実行時にアイコンが表示されない理由がわかりません
@Nikos C.は有益なアドバイスを提供しますが、あなたの主な問題は、リソースへの正しいリンクを使用しなかったことだと思います。
コードには、次のものがあります。
QPixmap pixmap = QPixmap ("://my_image.png");
しかし、 documentation によると、
QPixmap pixmap = QPixmap (":/my_image.png");
または、リソースにエイリアスを付けて、代わりにそれらを使用することもできます。
最近、同じ問題が発生し、リソース文字列の形式が正しくありませんでした。現在のバージョンのQtCreatorを使用している場合は、編集用に.qrcファイルを開いて、アドレス指定しようとしているリソース(この場合は画像)を右クリックし、[リソースパスをクリップボードにコピー]をクリックします。そして出来上がり、あなたは毎回正しいリソース文字列を持っています。
QtCreatorは素晴らしいです。
お役に立てれば!
問題は、rcc.exe C:\ root\QT> c:\ root\QT\4.7.4\bin\rcc.exe Headless.qrc -o qtresources.cppを使用することで解決されます。コンパイル中は、パスにイメージが含まれている必要があります。 qtresources.cppファイルを作成し、このファイルをmakefileまたはプロジェクトに含めます。画像が見えるはずです。