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