Qt for Android / ios 将图片或文件打包进安装包中
概述
用 Qt 做程序開發(fā),圖片或翻譯文件的引用有兩種方式,一種是直接引用,本地圖片, 一種是編譯到資源文件中,其實(shí)直接添加在資源文件中是最方便的,不需要考慮文件存放的問題,但是這樣可能帶來的問題是啟動軟件的速度可能會比較慢,另外,如果圖片比較多的話,那啟動程序后占用內(nèi)存也會比較高,所以有時候會考慮用第一種方式來實(shí)現(xiàn)。那么問題來了,如果是用 Qt 做移動開發(fā),該怎么把這些圖片或翻譯文件或者其他文件一起打包進(jìn)安裝包中并能正常引用呢?其實(shí)用 Qt 做 Android 和 IOS 的開發(fā),要實(shí)現(xiàn)該功能的做法還不太一樣,這里做個簡單的總結(jié)。
Qt for Android
首先來看看 Qt 做 android 開發(fā)該怎么將圖片資源一起打包。
打開 Qt 工程文件pro,并添加如下代碼
注意,這里只是我的示例寫法,linguist是我本地和工程文件 pro 同級目錄的文件夾,里面包含了翻譯文件*.qm, langs字段是可以隨便定義的,首先指定langs.files 文件目錄,然后指定 langs.path 將要存放到 Android 程序包中的路徑,這里需要注意,通常這種三方文件在 Android 中都是存放到assets目錄下,所以這里我們講翻譯文件存放到assets的Language文件夾中去,最后直接 INSTALLS即可。
這樣編譯出來的 apk 中,加壓后會發(fā)現(xiàn)已經(jīng)生成一個assets文件夾,并且在改文件夾中存放了我們已經(jīng)添加的翻譯文件。
此外,如果要將圖片資源也打包進(jìn)去,可以使用同樣的方式來實(shí)現(xiàn),這里就不多說了。
接下來我們看一下如何引用我們存放好的這些文件,看以下示例:
assets:/Language/xx.qm直接通過以上方式就可以引用了。
Qt for ios
要實(shí)現(xiàn)同樣的功能,ios 的做法有點(diǎn)不一樣,來看看示例:
ios:{ extpath = / langs.files = linguist/*.qm langs.path = $$extpath/linguist QMAKE_BUNDLE_DATA += langs }這里先指定了一個當(dāng)前目錄變量extpath,其實(shí)可有可無,主要便于langs.path 指定文件存放路徑。注意,這里的不再是 INSTALL 而是QMAKE_BUNDLE_DATA,其他的代碼都是一樣的。
然后來看看打包出來的文件包內(nèi)容:
我們看到這里多了一個文件夾,里面包含了我們加入進(jìn)去的翻譯文件,OK,接下來看看如何引用該文件:
由于該目錄是和程序目錄同級的,所以直接獲取應(yīng)用程序所在的目錄,然后加上文件夾名稱就可以拿到文件路徑了,這個很簡單,就不再贅述。
重點(diǎn)是要看到編譯這兩個平臺軟件時實(shí)現(xiàn)該功能的區(qū)別點(diǎn),其他的就好辦了。
總結(jié)
以上是生活随笔為你收集整理的Qt for Android / ios 将图片或文件打包进安装包中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt for ios 无证书真机调试
- 下一篇: 简单理解Python中的if __nam