第一步:搭建目录

创建module项目:go mod init test_go
在这里插入图片描述

第二步:编写主代码

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()
}

需要下载依赖:go mod tidy

第三步:编写配置

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>

第四步:编译打包

下载依赖
go get github.com/akavel/rsrc

编译依赖
rsrc -manifest test.manifest -o rsrc.syso

重命名:将test.manifest修改为test.exe.manifest

打包
go build
go build -ldflags="-H windowsgui"

第五步:运行项目

./test_go.exe
在这里插入图片描述