goLang 如何开发 windows 窗口界面

原创 2016年05月30日 10:14:11

今天找了一下。找到了一个 walk的一个东西。不用说下get一下这个pack下了再说

go get github.com/lxn/walk
get下来后 访问了一下github 页面看了一下作者的说明

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

还有个 例子。

package main

import (
	"strings"

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

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

	MainWindow{
		Title:   "xiaochuan测试",
		MinSize: Size{600, 400},
		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()
}
这个肯定要自己试试玩玩啊。写完代码 buIid一下

go build -ldflags="-H windowsgui"
生成了一个 test.exe的文件。打开了一下。居然一点反应都没有。又仔细看了一下。原来我忽略了一个东西

还需要一个 rsrc的一个pack

go get github.com/akavel/rsrc
get下来后 访问了一下github 页面看了一下作者的说明

用于在程序中嵌入二进制资源的工具

这个怎么玩呢。 运行一下 go install 然后运行 rsrc 命令。不好用。估计go bin 下面没有这个 rsrc.exe 没办法手动build copy 过去把

cd %GOPATH%/src/github.com/akavel/rsrc
go build

可以看到这个rsrc目录下面生成了一个 rsrc.exe 肯定就是 这个鬼.copy 到 GOROOT/bin 下面 。运行一下


ok install 完成了。下面怎么玩呢。继续看作者怎么写的

他需要创建一个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>
    </assembly>

然后运行

rsrc -manifest test.manifest -o rsrc.syso

然后再运行刚刚的那个 

go build -ldflags="-H windowsgui"

双击 test.exe 。ok运行成功了


版权声明:本文为博主原创文章,未经博主允许不得转载。技术交流QQ 1533365771 欢迎探讨 如果发现文章错误欢迎指出。

相关文章推荐

golang 开发gui,还真有gui的框架,就是做个简单的行

1,关于guigolang 还真的有gui的开发框架。在mac上面好像比较简单。直接用就好。 不知道在其他平台上面咋样。 github项目地址: https://github.com/andla...

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gu...

astilectron之Go语言golang的图形界面

astilectron 是一个Electron应用程序,通过TCP套接字提供API,允许执行Electron的方法以及捕获Electron的事件。 建筑 +---------------------...

golang windows 设置桌面背景和屏幕保护

设置桌面背景和屏幕保护主要是修改注册表和使用windows api来生效配置,支持XP以上操作系统。使用方法参数说明: Usage of setbg.exe: -a 设置开启或关闭屏...
  • CodyGuo
  • CodyGuo
  • 2017年06月11日 09:53
  • 554

我的Go语言学习之旅七:创建一个GUI窗体

在上次中,刚刚学过了  弹窗效果,这里再接着学习一下如何创建一个窗体。还是老路子,先上代码:package mainimport ("github.com/lxn/go-winapi""syscall...

打造atom成为golang开发神器

无论你是Sublime Text爱好者还是VIM粉丝,你都应该尝试使用一下1.0版本的atom。

golang 调用win32 api 实现windows注销、重启、关机

golang 调用win32 api 实现windows注销、重启、关机
  • CodyGuo
  • CodyGuo
  • 2016年07月02日 17:26
  • 1405

windows7 下搭建golang开发环境

一、golang的安装和环境变量的设置 1、golang安装包下载和安装 到golang官网下载最新版的安装包go1.6.3.windows-amd64.msi,下载之后直接运行安装,安装路径就使用它...

使用golang的标准库搭建网站--1.从最简单的页面开始

之前用beego做了几个网站,觉得beego确实非常好用,大大简化了web的开发,但总是使用现成的框架,而不了解其背后的技术,感觉总是无法提高,这篇文章不是去分析beego的源代码,那个有点复杂了,而...
  • mybc724
  • mybc724
  • 2015年08月10日 15:57
  • 1468

Go:去除程序启动时的控制台窗口

Go默认生成的程序是控制台程序,也就是说会在程序启动时显示一个控制台窗口。看看程序的PE属性 我们并不总是需要这个控制台窗口。为了创建窗口程序,可以在编译时加入参数-ldflags="-H win...
  • aqtata
  • aqtata
  • 2016年11月29日 09:58
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:goLang 如何开发 windows 窗口界面
举报原因:
原因补充:

(最多只允许输入30个字)