Golang---walk學習(一)
開始嘗試用Golang語言來寫介面,發現了walk這個好東西,可以實現非常優美的介面程式
walk的git地址為:http://github.com/lxn/walk
開發文件為:http://godoc.org/github.com/lxn/walk
在保證安裝好了golang語言並配置好環境變數、安裝Git之後,就可以直接從go命令列中獲取walk
命令執行完之後就會發現在golang的GOPATH下的src目錄中生成了一個github.com資料夾,是儲存從github上得到的所有的第三方庫,庫中有很多的使用例子,本人使用的IDE是LiteIDE,匯入之後就可以直接編譯執行。
完整程式碼如下:
// Copyright 2013 The Walk Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "log" ) import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) func main() { var te *walk.TextEdit if _, err := (MainWindow{ Title: "Walk Clipboard Example", MinSize: Size{300, 200}, Layout: VBox{}, Children: []Widget{ PushButton{ Text: "Copy", OnClicked: func() { if err := walk.Clipboard().SetText(te.Text()); err != nil { log.Print("Copy: ", err) } }, }, PushButton{ Text: "Paste", OnClicked: func() { if text, err := walk.Clipboard().Text(); err != nil { log.Print("Paste: ", err) } else { te.SetText(text) } }, }, TextEdit{ AssignTo: &te, }, }, }).Run(); err != nil { log.Fatal(err) } }
以上可以實現複製和貼上功能,並在指定的text裡面顯示,簡單強大!
介面編寫起來非常的簡潔,事件處理也很方便,當然,如果想將生成的exe打包的話,就需要使用另外一個工具rsrc,同樣可以在命令列中直接使用go命令來獲取:
得到之後,需要在rsrc目錄下進行編譯,最後得到的rsrc.exe放入到GOROOT目錄下,此刻就可以對exe檔案進行打包啦。
打包的命令為:
其實我們發現在exe在編譯執行之後,就會在目錄下生成一個manifest檔案,而打包就是將exe檔案和manifest嵌入在一起釋出,命令中的test.manifest就是程式生成的檔案,接下來就可以將exe檔案釋出了。
最後還遇到一個問題,在打包之後執行exe的時候會出現doc視窗,這是因為在編譯的時候將編譯視窗融合在了一起,因此在build的時候使用
這樣就可以避免出現這種情況了。
最後,分享另外一個drawing例子的畫圖框