1. 程式人生 > >Qt for Windows:靜態釋出QML開發的程式

Qt for Windows:靜態釋出QML開發的程式

概述

之前寫了一篇,講如何靜態編譯Qt5.9.0,連結如下:

http://blog.csdn.net/wsj18808050/article/details/72862478

現在趁熱打鐵,再說下如何以靜態方式,釋出QML程式。

其實靜態釋出Quick/QML程式,大體上和靜態釋出Widgets差不多,只不過QML部分的一些庫檔案,是無法靜態編譯的,畢竟都稱不上C++。

注意,本文中用到的套件是5.9.0靜態編譯,MinGW版本

整理QML庫檔案

這些QML庫檔案都儲存在一個qml目錄,在我電腦上那就是 C:\Qt\Qt5.9.0_MinGW_static\qml。如下圖,在 C:\Qt\Qt5.9.0_MinGW_static\qml\QtQuick\Controls.2

中儲存的就是Controls2庫依賴的一些QML檔案。

這裡寫圖片描述

我們要做的,就是把這所有的qml庫檔案,新增到qrc中,再設定一下QQmlApplicationEngine的importPath就行了。

我新建一個Controls2的工程,並且把qml目錄完整的拷貝了過來。記得刪除qml目錄中的.a檔案,我們這裡不需要這些靜態庫。

這裡寫圖片描述

刪除完.a檔案後,qml資料夾中有725個檔案,3.5MB大小。看起來還可以,全部新增到qrc裡。

這裡寫圖片描述

當然這裡我們不能手動一個個加,太麻煩了,右鍵qrc檔案,選擇 Add Existing Directory ,選擇qml目錄,這樣整個qml目錄已經裡面所有資料夾,都被遞迴新增到qrc裡面了。

這裡寫圖片描述

新增後效果如下:

這裡寫圖片描述

回到main.cpp,再新增一行

engine.addImportPath( ":/qml/" );

效果如下:

這裡寫圖片描述

選擇release編譯,得到exe檔案

執行exe

在Win10中執行,看起來沒有問題
這裡寫圖片描述

拷貝到純淨Win7中執行,也沒問題
這裡寫圖片描述