今天找了一下。找到了一個 walk的一個東西。不用說下get一下這個pack下了再說
go get github.com/lxn/walk
get下來後訪問了一下github 頁面看了一下作者的說明
Walk是一個寫給Golang的Window應用程式庫套件,它主要用於桌面GUI的開發,但也有更多的東西。
還有個 範例。
package main import ( "strings" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) func main() { var inTE, outTE *walk.TextEdit MainWindow{ Title: "xiaochuan测试", MinSize: Size{600, 400}, Layout: VBox{}, Children: []Widget{ HSplitter{ Children: []Widget{ TextEdit{AssignTo: &inTE, MaxLength: 10}, TextEdit{AssignTo: &outTE, ReadOnly: true}, }, }, PushButton{ Text: "SCREAM", OnClicked: func() { outTE.SetText(strings.ToUpper(inTE.Text())) }, }, }, }.Run() }
這個肯定要自己試試看。寫完程式碼 buIid一下
go build -ldflags="-H windowsgui"
產生了一個 test.exe的檔案。打開了一下。居然一點反應都沒有。又仔細看了一下。原來我忽略了一個東西
還需要一個rsrc的一個pack
go get github.com/akavel/rsrc
get下來後訪問了一下github 頁面看了一下作者的說明
用於在程序中嵌入二進位資源的工具
怎麼玩。執行 go install 然後執行 rsrc 指令。不好用。估計go bin 下面沒有這個rsrc.exe 沒辦法手動build copy 過去把
cd %GOPATH%/src/github.com/akavel/rsrc go build
可以看到這個rsrc目錄下面生成了一個rsrc.exe 肯定就是這個鬼.copy 到GOROOT/bin 下面。運行一下
ok install 完成了。下面怎麼玩呢。繼續看作者怎麼寫的
他需要建立一個test.manifest 的檔案裡面寫入
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> </assembly>
然後執行
rsrc -manifest test.manifest -o rsrc.syso
然後再執行剛剛的那個
go build -ldflags="-H windowsgui"
雙擊test.exe 。 ok運行成功了
更多golang相關技術文章,請造訪golang教學欄位!
以上是詳解goLang怎麼開發windows視窗介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!