walk
1.0.0
Walk是GO編程語言的“ Windows應用程序庫套件”。
它主要對桌面GUI開發有用,但還有更多東西。
確保您進行了工作安裝。見入門
步行目前需要1.11.x或更高版本。
現在運行go get github.com/lxn/walk
通過步行創建GUI的首選方法是使用其聲明性的子軟件包,如這個小示例所示:
test.go package main
import (
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
"strings"
)
func main () {
var inTE , outTE * walk. TextEdit
MainWindow {
Title : "SCREAMO" ,
MinSize : Size { 600 , 400 },
Layout : VBox {},
Children : [] Widget {
HSplitter {
Children : [] Widget {
TextEdit { AssignTo : & inTE },
TextEdit { AssignTo : & outTE , ReadOnly : true },
},
},
PushButton {
Text : "SCREAM" ,
OnClicked : func () {
outTE . SetText ( strings . ToUpper ( inTE . Text ()))
},
},
},
}. Run ()
}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 >
< application xmlns = " urn:schemas-microsoft-com:asm.v3 " >
< windowsSettings >
< dpiAwareness xmlns = " http://schemas.microsoft.com/SMI/2016/WindowsSettings " >PerMonitorV2, PerMonitor</ dpiAwareness >
< dpiAware xmlns = " http://schemas.microsoft.com/SMI/2005/WindowsSettings " >True</ dpiAware >
</ windowsSettings >
</ application >
</ assembly >然後,要么使用RSRC工具來編譯清單,因此:
go get github.com/akavel/rsrc
rsrc -manifest test.manifest -o rsrc.syso
或將test.manifest文件重命名為test.exe.manifest並用應用程序分配。
在包含test.go的目錄中
go build
要擺脫CMD窗口,而是運行
go build -ldflags="-H windowsgui"
test.exe
有一些例子應該讓您入門。
步行需要共同的控制6。這意味著您必須在可執行文件旁邊或嵌入為資源旁邊放置適當的應用清單文件。
您可以復制示例隨附的應用清單文件之一。
要嵌入清單文件作為資源,您可以使用RSRC工具。
重要的是:如果您沒有將清單作為資源嵌入,則不應在清單文件到位之前啟動可執行文件。如果您還是這樣做,則該程序將無法正常運行。更糟糕的是,Windows將無法識別清單文件,您後來落在可執行文件旁邊。要解決此問題,請重建您的可執行文件,然後僅使用清單文件啟動它。
通常的默認消息循環包括對WIN32 API函數的呼叫,這會導致GO的運行時開銷數量不錯。作為此的替代方法,您可以使用walk_use_cgo構建標籤使用主郵件循環的可選C實現來編譯步行:
去構建-tags walk_use_cgo