QML使用資源系統

2021-09-23 14:52:24 字數 1302 閱讀 4700

qt 資源系統允許將資源檔案作為二進位制檔案儲存在可執行檔案中,這在構建混合的 qml/c++ 應用程式時非常有用,因為它通過資源系統的 uri 方案引用 qml 檔案(以及其他資源,例如:和聲音檔案),而不是檔案系統資源的相對路徑或絕對路徑。

要在混合的 qml/c++ 應用程式中使用資源系統:

一旦完成該過程,qml 中以相對路徑指定的檔案都將從資源系統中載入。資源系統的使用對 qml 層完全透明,這意味著所有的 qml **應該使用相對路徑引用資源檔案,而不是使用 qrc 方案。該方案只應在 c++ **中使用,來引用資源檔案。

注意:如果使用資源系統,那麼只要更改 qml 原始檔,就必須重新編譯應用程式,以便更新包中的資源。

來看乙個簡單的示例,在 qml 中載入一張炫酷的(logo ~o(∩_∩)o~)。

應用程式的目錄結構如下所示:

main.qml 和 background.png 將被打包為資源檔案,這是在 resource.qrc 中完成的:

version="1.0">

prefix="/">

main.qmlfile>

images/background.pngfile>

qresource>

rcc>

由於 background.png 是乙個資源檔案,main.qml 可以使用 resource.qrc 中指定的相對路徑來引用它:

import

qtquick 2.3

image

為了讓 qml 正確地定位資源檔案,main.cpp 使用 qrc 方案將主 qml 檔案(main.qml) 載入為資源檔案:

#include

int main(int argc, char *ar**)

最後,project.pro 使用 resources 變數來指示 resource.qrc 應該被用於構建應用程式資源:

# 告訴 qmake 這是乙個應用程式

# 宣告了要從 c++ 使用的 qt 庫

qt += qml quick

config += c++11

sources += main.cpp

# 告訴 qmake 該資源集合應該被內建到可執行檔案中

resources += resource.qrc

qml使用記錄

1.通過property var 宣告的資料型別即使是string型別,仍然無法使用string的方法,為了使用可以直接將其定義為string型別 2.timer是qml的定時器,restart 方法才會清零,stop不會 3.tooltip不是所有控制項都存在的,可以自己定義乙個tooltip 方...

Qt資源使用方式及資源系統簡述

一般來說,資源檔案可以在資源收集檔案 qrc 中指定,包括字型檔案 ttf png 翻譯檔案 qm 以及qml頁面檔案 qml 等。qrc檔案中列出的資源檔案屬於應用程式源樹的一部分。在.qrc檔案中描述的資源檔案路徑也是相對於.qrc檔案所在的目錄的。當然,其中的資源檔案必須與.qrc檔案位於同一...

QML元件載入使用

前段時間工作中遇到乙個很棘手的問題,壓力測試過程中程序掛死,檢視coredump,指向的是qt的內部庫檔案報錯,且報錯資訊也不完整。由於庫檔案是由另外的人負責,排查起來也是頭大。後來還諮詢了所謂的qt大神,大概就是說元件太多了,然後說把現有元件組合下,然後分別壓力測試,看具體是哪個元件的問題。wha...