使用goland IDE编写go windows ui

最近突发奇想,想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有,通过知乎,csdn等查到目前支持最好的就是walk库了。那走起试试。

一、拷贝go代码

将官网例子(国内可以找码云)放入文件test.go:

Go 复制代码
package main

import (
	"strings"

	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
)

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

	MainWindow{
		Title:   "zishen-test",
		MinSize: Size{666, 666},
		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()
}

在同一目录下新建test.manifest,内容如下:

XML 复制代码
<?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>

二、设置goland环境

从file-》setting

设置goroot为本地go的安装路径

设置gopath,为第一步test.go所在目录的上一级目录。

设置编译的os(windows吧)

三、编译

1、编译前准备

进入目录,设置mod名称,下载依赖。如下图所示。

2、编译rsrc

注意在gopath的pkg目录中,且编译完成后需要将对应的exe放到go的bin目录下,如下所示

编译rsrc文件

3、编译go文件

配置输出路径。我放在和go文件一个目录下

编译:

使用命令go build -ldflags="-H windowsgui"

四、运行

确实运行起来了。后面再优化吧

五、参考

goLang 如何开发 windows 窗口界面

相关推荐
匆匆那年9677 小时前
VSCode 远程 Linux 使用Codex
linux·ide·vscode
银河外卖员10 小时前
VMware 虚拟机安装 Windows 10 系统详细图文教程
windows·vmware
渣渣灰958710 小时前
Windows 10 环境部署 Claude Code 教程
windows·vscode·calude code
元Y亨H11 小时前
Windows 内置管理员 (Administrator) 账户重命名指南
windows
水饺编程11 小时前
第5章,[Win32 章节] :几种典型的颜色
c语言·c++·windows·visual studio
STDD12 小时前
Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹
linux·服务器·windows
在繁华处12 小时前
轻棋局(一):项目总览与架构设计
人工智能·windows
灰色人生qwer13 小时前
Python 规则:带默认值的参数必须放在不带默认值的后面
linux·windows·python
Wy_编程14 小时前
go中的协程Goroutine
开发语言·golang
会编程的土豆14 小时前
Go 语言中的 `new` 关键字(创建指针)
java·算法·golang