私はすべてのSE質問を見てきましたし、ビデオチュートリアルに従っています。なぜそれが動作していないのか分かりません。Qtリソースが動作しない
私は2つのQラベル、lblBuyer
とlblSeller
と2つの画像を持っています。ここでは、関連するコードは次のとおりです。あなたがそれをしたい場合は
そしてresources.qrc:
QPixmap pixmap_buyer(":/Resources/Images/Buyer.png"), pixmap_seller(":/Resources/Images/Seller.png");
size_t lblBuyerWidth = ui->lblBuyer->width(), lblBuyerHeight = ui->lblBuyer->height();
size_t lblSellerWidth = ui->lblSeller->width(), lblSellerHeight = ui->lblSeller->height();
ui->lblBuyer->setPixmap(
pixmap_buyer.scaled(lblBuyerWidth, lblBuyerHeight, Qt::KeepAspectRatio)
);
ui->lblSeller->setPixmap(
pixmap_seller.scaled(lblSellerWidth, lblSellerHeight, Qt::KeepAspectRatio)
);
これは、リソースがどのように見えるかです
<RCC>
<qresource prefix="/Resources">
<file>Images/Buyer.png</file>
<file>Images/Seller.png</file>
</qresource>
</RCC>
およびファイル構造(画像は直接Imagesディレクトリにあります):
私は「リソースパスとしてコピー」を選択したので、何かを混乱させないようにしました。私がクリックしたときにも、「ファイルが見つからないと削除」どちらもない私はそれを実行すると、しかし...削除される:
QPixmap::scaled: Pixmap is a null pixmap
QPixmap::scaled: Pixmap is a null pixmap
'pixmap_buyer.isNull()'は何を返しますか?代わりに 'QFile'を使ってリソース内のファイルをオープンしようとすると(ファイルが実際にリソースシステムにあるかどうかをチェックするために) – peppe
trueを返します。私は 'if(... isNull())qDebug(" Is null ");を実行し、それは印刷します。 – Goodies