標籤:
GO沒有原生的介面庫,所以不能直接用來寫GUI介面。但最近互連網上已經湧現出不少成熟、好用的第三方介面庫。使用它們,就同樣可以寫出同C#、C++的介面。而且效率還更勝一籌。
關於Walk介面庫(官方介紹):
Walk是一個寫給Golang的Window應用程式庫套件,它主要用於案頭GUI的開發,但也有更多的東西。
Part One:安裝Walk
在瀏覽這部分前,請確定已經配置安裝完畢go語言的環境。如果沒有,可以參考go官網的Install協助。另外,注意:這個Walk庫只能運行在Go 1.1.x及以上。
要安裝Walk很簡單,只要運行命令:go get github.com/lxn/walk
等待命令執行完畢,這時候檢查GOPATH的src與pkg下,是否有符合自己電腦環境的walk目錄。(我的電腦的CPU架構為AMD64,則會在%GOPATH%\windows_amd64\github.com\lxn下出現一個walk檔案夾與編譯完成的a檔案,另外在%GOPATH%\src\github.com\lxn下也會出現walk的原始碼)
我們還要安裝一個工具rsrc,以完成後期的打包工作,執行命令:go get github.com/akavel/rsrc
等待命令執行完成,然後檢查,步驟與上文相仿,不再多說。
Part Two:使用Walk
這裡不講述具體的編碼方式,開源的項目都可以自己看懂,而且官方也給了不少的例子,可以讓你徹底瞭解這個庫。這部分裡主要講Walk項目的編譯產生。
和其他語言的介面庫相比,這個庫有一點比較獨特。它所產生的exe檔案只有依賴於manifest才能正常運行(在其他GUI程式中,這個檔案多數用於產生XP樣式)。而go卻沒有提供資源打包的所有功能(至少在我的LiteIDE中找不到),所以要把manifest嵌入exe檔案中,還需要一個工具:rsrc。
這個工具已經在前部分中成功安裝。此工具的作用是簡單地將一些檔案打包在syso檔案中,go的編譯器就可以把這些檔案嵌入到exe檔案中了。
嵌入manifest的命令很簡單:rsrc –manifest %manifestpath% –o % sysopath%
比如我們要為test.exe打包一個manifest檔案,只要這樣做:
rsrc -manifest test.manifest -o rsrc.syso
執行完命令後,把rsrc檔案移動到src下的項目目錄,再執行編譯命令。這時候,編譯出來的exe就可以獨立運行了。當然,如果你不喜歡這種方法,還可以把xxx.manifest檔案改名為xxx.exe.manifest,程式同樣能執行,但是發布時,必須要帶著此檔案一起發布。
這個命令還有很多有趣的功能,如給exe檔案加上自己喜歡的表徵圖,命令為:
rsrc -manifest main.manifest –ico icon.ico -o rsrc.syso,後續操作與前文一樣。
附錄:
網上對syso檔案的介紹甚少,經過我對源碼的研究及產生後PE的查看。發現syso檔案就是go官方對於“程式對象歸檔”所搞出來的一個東西,說白了就與Win下的資源檔相似。PE查看器也說明了這就是一個資源檔,存放在rsrc程式段中。
Go與GUI——GO語言的圖形介面Walk