リソース(画像、音声)の埋め込み

QTで作ったプログラム中にはプログラム中で使うテキストや画像や音声などのリソースを埋め込むことができます。

ここではその手順を手短にまとめてみました。

リソースファイルの作成

Qtではリソースファイルを.qrcという拡張子でプロジェクト名と同じ名前でプロジェクト内に作成します。

例えばプロジェクト名がRscAppという名前ならリソースファイルはRscApp.qrcという名前をつけます。

そのRscApp.qrcの内容は次の通りです。

RscApp.qrc

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images/my_image.png</file>
</qresource>
</RCC>

この例ではimagesフォルダ内のmy_image.pngという画像ファイルをリソースとして追加します。

そしてプロジェクトファイル(RscApp.pro)内には次の行を追加します。

RscApp.pro
RESOURCES += \
    RscApp.qrc

メイン関数側での設定

main関数側でリソースを呼び出すためのマクロ Q_INIT_RESOURCE を呼び出します。

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    Q_INIT_RESOURCE(RscApp);
        /// リソースファイルを初期化
    return a.exec();
}

リソースの呼び出し

コード中で画像にアクセスするには特殊なパスの表し方をします。

例えばこの例のimage/my_image.pngにアクセスするにはパスとして

"://images/my_image.png"

などとパス名の前に"://"をつけます。

実際にパス名から画像ファイルを取得しているのが次のコードです。

QBitmap my_image("://images/my_image.png", "PNG");
    /// リソースから画像読み込み

音声やテキストファイルについてもこれと同じ方法で埋め込みできます。

関連項目
プライバシーポリシー