go语言之walk库用法

Go 语言的 walk 库是一个用于创建 Windows GUI 应用程序的第三方库,它提供了一组简单而强大的 API,帮助开发人员轻松地构建丰富的 Windows 界面。

与其他 GUI 库相比,walk 库的主要特点包括:

  • 易学易用:walk 库的 API 设计使得开发人员可以快速上手,并快速创建 Windows GUI 应用程序。
  • 跨平台支持:虽然 walk 库的原生实现只支持 Windows 操作系统,但它也提供了一个类似接口的 cross-platform 实现,可以跨平台运行
  • 高效性能:walk 库的底层代码使用了高效的 C++ 实现,保证了应用程序的高性能和流畅性。
  • 支持多种界面元素:walk 库支持添加多种常见的界面元素,如按钮、文本框、标签等,并在这些控件的基础上提供了丰富的功能和事件处理方式。
  • 详细文档和示例:walk 库有着详细的文档和示例,可以让开发人员更快地入门并深入了解其使用细节。

github地址如下:

https://github.com/lxn/walk

一、运行一个简易窗口

要通过walk运行起来一个简易的桌面程序,主要需要以下三步

1、在项目目录下创建主程序文件main.go,代码如下:

package main

import (
	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
	"strings"
)

func main() {
	var inTE, outTE *walk.TextEdit

	MainWindow{
		Title:   "简易窗口",        //windows主窗口的名字
		MinSize: Size{300, 200},   //大小
		Layout:  VBox{},
		Children: []Widget{
			HSplitter{
				Children: []Widget{
					TextEdit{AssignTo: &inTE},
					TextEdit{AssignTo: &outTE, ReadOnly: true},
				},
			},
			PushButton{
				Text: "发送",
				OnClicked: func() {
					outTE.SetText(strings.ToUpper(inTE.Text()))
				},
			},
		},
	}.Run()
}

2、创建一个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>

在使用 Go 语言的 walk 库创建 Windows GUI 应用程序时,需要使用到 Manifest 文件。Manifest 文件是一种 XML 格式的配置文件,它可以告诉操作系统如何运行应用程序,并在程序启动时向操作系统提供一些元数据信息。

具体来说,在使用 walk 库创建 Windows GUI 应用程序时,需要在可执行文件中包含一个名为 “manifest.xml” 的 Manifest 文件,并将其与应用程序绑定。这个 Manifest 文件中包含了应用程序的一些元数据信息,如应用程序名称、版本号、图标等,并指示操作系统如何处理应用程序。其中,最常见的用途是指定应用程序所需的管理员权限。如果应用程序需要访问敏感资源或执行一些需要管理员权限的操作,那么需要在 Manifest 文件中指定该应用程序需要运行在管理员模式下。

此外,在 Windows Vista 和更高版本中,Manifest 文件还可以指定应用程序的 DPI 感知度,并告诉操作系统如何处理不同分辨率的显示器。这可以确保应用程序在不同的显示器上都有相同的显示效果和用户体验。

因此,Manifest 文件是使用 walk 库创建 Windows GUI 应用程序时必不可少的一部分。通过在 Manifest 文件中指定应用程序的元数据信息和要求,可以确保应用程序在操作系统中得到正确的运行和处理。

3、下载 rsrc 工具,如下:

github地址如下:https://github.com/akavel/rsrc

执行如下命令安装和编译manifest文件

go install github.com/akavel/rsrc@latest    #执行后在GOPATH/bin/下可看到rsrc.exe
rsrc -manifest test.manifest -o rsrc.syso   #生成rsrc.syso文件

4、最后通过运行命令构建成exe文件,然后运行,如下:

go build -ldflags="-H windowsgui"  -o new-windows.exe   #-o指定名字,可以不加

运行new-windows.exe,将打开一个桌面程序窗口,如图:

标签