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...