天天看點

Q_INIT_RESOURCE

https://doc.qt.io/qt-5/resources.html

Q_INIT_RESOURCE是Qt的資源機制(resource mechanism),它使程式在編譯時将圖檔存儲在.cpp檔案中,運作時連接配接它。這要求你建立一個Qt資源檔案***.qrc,在***.qrc中指定圖檔位置。編譯時編譯器将***.qrc中指定的圖檔以二進制數的形式存儲到Qt自動建立的名為qrc_***.cpp的檔案中,這裡的***就是你建立***.qrc時的名字,而你在main()函數中使用Q_INIT_RESOURCE(name)宏時的name也必須是這個***。

Q_INIT_RESOURCE是Qt的資源機制。

使用方法:

Q_INIT_RESOURCE(name)

首先,我們自己需要建立一個XXX.qrc檔案,“XXX”代表該資源的名字。上述代碼中的name,就是代表需要初始化該資源。

具體的qrc檔案内容的編寫,可參考Qt官方文檔The Qt Resource。

接下來,程式編譯時,編譯器根據傳入的name,将XXX.qrc中指定的資源,以二進制數的形式存儲到Qt自動建立的名為qrc_XXX.cpp的檔案中,這裡的XXX就是你建立.qrc檔案的名字,也是調用Q_INIT_RESOURCE傳入的name。

這句代碼,寫在類的構造函數中,可確定在靜态連結的情況下将資源連結到最終的應用程式二進制檔案中;寫在main函數中,則全局可以使用。

同理,在将資源解除安裝的時候,需要調用Q_CLEANUP_RESOURCE()。

繼續閱讀