page contents

golang语言:开发GUI桌面应用

最近在学golang,想着能否用golang来开发一个Windows图形界面软件,就开始上网找资料,查到golang有一个Walk库可以实现该功能,下面就来认识下golang的Walk。

attachments-2021-08-lhx2Kdug61089f29d72d4.jpg

最近在学golang,想着能否用golang来开发一个Windows图形界面软件,就开始上网找资料,查到golang有一个Walk库可以实现该功能,下面就来认识下golang的Walk。

关于Walk界面库(官方介绍):

Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。

开始前我们要先注意,Walk官方声明,限只支持 golang 1.8.x 以上的版本,1.7.x以下的已经不支持了。

1.我们需要先安装Walk库,运行以下命令

go get github.com/lxn/walk

因github国外服务器原因,安装时间可能需要几十秒,要耐心等待下

2.walk库安装好后,我们在项目下建立一个 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 build打包是不行的,golang的图形exe需要依赖于manifest才能正常运行。而go却没有提供资源打包的所有功能,所以要把manifest嵌入exe文件中,还需要一个工具:rsrc。

3.我们安装一个工具rsrc

go get github.com/akavel/rsrc

4.rsrc工具安装好后,我们还需建一个manifest文件 test.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <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>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <dpiAware>true</dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</assembly>

5.生成 rsrc.syso

rsrc -manifest test.manifest -o rsrc.syso

6.然后打包成exe文件

go build

此时打开exe,会带着cmd命令窗口,接下来我们把这命令窗口去除

go build -ldflags="-H windowsgui"

然后再打开exe就可以了。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-9h9ecAVQ62ad6e36b4389.jpeg

  • 发表于 2021-08-03 09:43
  • 阅读 ( 2099 )
  • 分类:Golang

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章