從技術架構角度來講,Qt Creator 能夠看作是一個插件平臺,其大部分功能都是以插件的形式提供的。架構
本系列文章將着重介紹如何開發 Qt Creator 插件,以擴展 Qt Creator 的現有功能。雖然 Qt Creator 的最新版本已經提供了插件項目,可是從最底層開發 Qt Creator 插件,對於理解其架構也有至關的做用。所以,本文將不依賴於 Qt Creator 提供的項目嚮導,而是直接以 .pro 文件建立插件。同時,但願在學習 Qt Creator 插件開發基礎之上,瞭解 Qt Creator 的架構。本系列文章原文出自 http://www.vcreatelogic.com/downloads/files/Writing-Qt-Creator-Plugins.pdf。ide
本系列文章在 Windows 平臺上,使用 mingw 版本 Qt 進行測試。Linux 平臺請自行進行修改。學習
當咱們從 http://qt.nokia.com/downloads 下載 QtSDK 時,咱們已經得到了最新版本的 Qt Creator 。若是你下載的是 Windows 平臺 mingw 版本的 QtSDK,其中包含的 Qt Creator 是使用 MSVC 進行編譯的,而 Qt Framework 和 Qt Designer 則使用的是 mingw(這也就是爲何有時候咱們的插件可以在 Qt Designer 找到,但在 Qt Creator 卻看不到)。所以,若是咱們要使用 mingw 版本的 QtSDK 進行 Qt Creator 插件開發,須要本身編譯 Qt Creator 。若是將來版本,QtSDK 提供的 Qt Creator 也是 mingw 編譯的,那麼,咱們最好仍是本身手動編譯一下 Qt Creator 。這樣咱們就能夠得到一個 debug 版本的 Qt Creator ,從而更有利於插件的調試。(這裏說明一下,Windows 平臺下的 Qt Creator 之因此提供 MSVC 版本的,徹底是技術緣由。由於 mingw 缺乏一些 Qt Creator 所必需的 Windows API。)測試
在這個頁面上,咱們能夠找到 Qt Creator 源代碼的下載連接:http://qt.nokia.com/downloads/qt-creator-source-package。 在本文寫做時,Qt Creator 最新版本是 2.2.1。咱們下載下來一個 zip 壓縮包,解壓以後,咱們在與 Qt Creator 源代碼平級的目錄中建立一個 build 文件夾,用於放置編譯後的文件,以避免編譯的過程文件同源代碼混在一塊兒(build 文件夾必須與 Qt Creator 源代碼文件夾平級,這是 qmake 作 shadow build 時的要求)。因而,如今的目錄結構以下所示:ui
新版本的 Qt Creator 提供了一個 Qt Quick Designer,用於 Qt Quick 的可視化設計。不過,這個插件須要用到 Qt 的私有頭文件。若是你是從 Nokia 直接下載的 QtSDK(就像上文說明的那樣)安裝,是沒有這些私有頭文件的。解決的辦法是下載 Qt 的源代碼(能夠在 Qt libraries 這裏找到一個 zip 的下載地址)。(這是 Qt Creator 已知的一個 bug,能夠在這裏找 到詳細信息。)在下載 Qt 源代碼以後,將 {Qt-source-code}\src\corelib\kernel\qwineventnotifier_p.h 複製到 {QtSDK-path}\Desktop\Qt\4.7.3\mingw\include\QtCore\private 這個文件夾下(沒有的話請自行建立)。插件
而後,咱們運行「開始菜單\Qt SDK\Desktop\Qt 4.7.3 for Desktop (MinGW)」。此時會啓動已經設置好 Qt 環境變量的命令提示符界面。而後使用 cd 命令,進入咱們剛剛建立的 build 文件夾。執行命令:debug
qmake ../qtcreator.pro 「QT_PRIVATE_HEADERS=D:/Develop/QtSDK/Desktop/Qt/4.7.3/mingw/include」設計
其中,D:/Develop/QtSDK/Desktop/Qt/4.7.3/mingw/include 這個路徑用於指定 Qt include 文件夾的位置。配置結束後,使用調試
mingw32-makecode
開始真正的編譯(因爲咱們使用的是 mingw 版本的 QtSDK,因此使用 mingw32-make。固然,你也可使用 nmake 使用 MSVC 進行編譯。不過前面已經說過,咱們這篇文章是基於 mingw 的)。通過一段時間的編譯(豆子的筆記本花了大概 75 分鐘,硬盤佔用 2.5G),若是沒有錯誤的話(豆子在編譯時會有找不到 qwineventnotifier_p.h 文件,在執行前面的修復以後便可經過。另外還可能會有一個找不到 ide_version.h 文件。若是出現這個問題,能夠將 build\src\plugins\coreplugin 目錄中的 ide_version.h,複製到 {qtcreator-2.2.1-src}\src\plugins\coreplugin), 咱們就會在 build\bin 下面找到 qtcreator.exe 可執行文件。雙擊運行一下,若是一切正常,那麼恭喜你!一個 debug 版本的 Qt Creator 已經編譯完成了!(可能會有找不到 dll 的錯誤,若是出現的話請自行修復路徑。啓動咱們編譯的 Qt Creator 會很慢,由於這是 debug 版本的。)
最後強調一點,必定要從源代碼編譯 Qt Creator ,不然,後面的插件開發的編寫和測試工做可能會有許多問題。