Qt on Android:資源文件系統qrc與assets

使用 Qt 為 Android 開發應用時,有時我們的應用會攜帶一些資源文件,如 png 、 jpg 等,也可能有一些配置文件,如 xml 等,這些文件放在哪裡呢?

有兩種方式:

qrcassets

咱們分別來看下。

the Qt Resource System

qrc , Qt 的資源文件系統,很好用哦。看個圖:

圖1 qrc 示意圖

你放在 qrc 裡的文件,如 cZ喎?https://www.2cto.com/kf/ware/vc/” target=”_blank” class=”keylink”>vcHkucG5nIKOsu+Gxu7Hg0uu1vSBleGUgzsS8/tbQo6hBbmRyb2lk06bTw8rHIGxpYmFwcGxpY2F0aW9uLnNvIKOpoaO1scTj1MvQ0NOm08PKsaOs1eLQqdfK1LTSsrvhsbu809TYtb3E2rTmoaPI57n7xOO1xNfK1LS63LTzo6zV4srHuPbOyszioaM8L3A+PHA+ICAgIMjnufvKx9TaIEFuZHJvaWQgxr3MqMnPo6zE47u509DB7c3i0ru49tGh1PGhozwvcD48aDE+QW5kcm9pZCC1xCBhc3NldHMgPC9oMT48cD4gICAgQW5kcm9pZCDP7sS/xL/CvNbQ09DSu7j2IGFzc2V0cyDEv8K8o6y4w8S/wrzE2rfF1sO1xM7EvP674dStt+Kyu7avtPKw/LW9IEFQSyDW0KOsQVBLINTaIEFuZHJvaWQgz7XNs7Cy17DKsaOsIGFzc2V0cyCyu7vhsbuwstewtb3TptPDxL/CvM/Co6zXotLio6zL/Lu51NogQVBLIMDvxbajrLWrysfTptPDv8nS1LfDzsrV4rj2zsS8/rzQxNq1xNfK1LSjoTwvcD48cD4gICAgUXQgwPvTw8HL1eLW1rv61sajrMq1z9bByyBhc3NldHMg0OnE4s7EvP7Ptc2zo6zO0sPHs6O8+7XEIFFGaWxlIKGiIFFQaXhtYXAgoaIgUUltYWdlILXIo6y2vL/J0tTNqLn9IA==”assets:/” 的方式來訪問 assets 內的文件。

使用 assets 虛擬文件系統,你的資源文件不會在程序啟動時就加載到內存,比較節省資源。

看一個圖:

圖2 assets 示意圖

那資源文件怎麼放呢?很簡單,就是放在 Qt 項目目錄下的 android/assets 文件夾內即可。如圖3:

圖3 使用 assets 的目錄結構

隻要你這麼一放, Qt 編譯時就會把 assets 內的文件打包到 APK ,然後就可以在 C++ 代碼內訪問瞭。

使用 assets 的 Android 示例

參考《Qt on Android:圖文詳解Hello World全過程》建立一個針對 Android 的項目。

創建 AndroidManifest.xml ,然後在 android/assets 目錄下放一個 beauty.jpg 。刪除項目的 widget.h 和 widget.cpp 。修改 main.cpp ,如下:

#include 
#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QLabel label;
    QPixmap pixmap("assets:/beauty.jpg");
    label.setPixmap(pixmap);
    label.show();

    return a.exec();
}

編譯,運行,可以看到圖 4 :

編程》介紹

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *