這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
walk的git地址:https://github.com/lxn/walk
walk的說明文檔:https://godoc.org/github.com/lxn/walk
go的git上面給出了實現一個簡單的gui的例子。這裡需要注意幾點:
1、使用go get會將項目下載到GOPATH下,這裡GOPATH不能跟GOROOT一樣,但是可以再GOROOT下建立一個work檔案夾,然後GOPATH定位到這個檔案夾。應該注意,GOPATH是環境變數,而不是工作空間,我們的工作空間同樣需要配置到GOPATH的,但是需要注意,使用go get擷取的東西會放在GOPATH的第一個路徑下,這點容易混淆,需要注意。同時需要注意的是,pycharm對於環境變數可能需要重啟電腦才能偵測到,同時需要手動添加項目路徑到Go Library->Global Libray下,注意不是工作目錄,而是項目路徑。
2、go build後面如果跟的是單個go檔案名稱,那麼就編譯單個檔案為exe檔案,同時exe名字是這個go檔案的名字。如果go build -o name.exe那麼就可以修改輸入的exe檔案為name.exe。使用go build -ldflags=“-H windowsgui”可以讓exe運行中不彈出cmd視窗。同時注意,編譯的時候不要指定單個檔案go build,因為main包下即使沒有其他go檔案,但是還是需要引入其他檔案的。
3、rsrc.syso檔案需要跟manifest在一個目錄下。否則exe運行不出gui。
4、運行命令go get github.com/akavel/rsrc才可以載入編譯gui需要的編譯器rsrc.exe,運行這個命令之後GOPATH下回多出一個bin檔案夾,bin檔案夾下回有一個rsrc.exe。這樣GOPATH路徑下就有了src,pkg,bin檔案夾了。
5、編譯命令rsrc -manifest xxx.manifest -o rsrc.syso中,rsrc就是指rsrc.exe,所以如果沒有配置到環境變數中,可以使用路徑指定,而xxx.manifest是項目下需要我們自己建立的manifest檔案,-o rsrc.syso是輸出檔案。這裡由於編譯需要定位到main包下,所以最後的rsrc.syso會出現在main包下。
這裡對於一個介面的建立,都是在一個MainWindow下的,使用索引值對方式部署,使用Run()方法運行。布局是Layout元素,子控制項是Children