Golang

开始尝试用Golang语言来写界面,发现了walk这个好东西,可以实现非常优美的界面程序

walk的git地址为:http://github.com/lxn/walk

开发文档为:http://godoc.org/github.com/lxn/walk

在保证安装好了golang语言并配置好环境变量、安装Git之后,就可以直接从go命令行中获取walk

 

命令执行完之后就会发现在golang的GOPATH下的src目录中生成了一个github.com文件夹,是保存从github上得到的所有的第三方库,库中有很多的使用例子,本人使用的IDE是LiteIDE,导入之后就可以直接编译运行。

完整代码如下:

// Copyright 2013 The Walk Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package mainimport ('log')import ('github.com/lxn/walk'. 'github.com/lxn/walk/declarative')func main() {var te *walk.TextEditif _, err := (MainWindow{Title: 'Walk Clipboard Example',MinSize: Size{300, 200},Layout: VBox{},Children: []Widget{PushButton{Text: 'Copy',OnClicked: func() {if err := walk.Clipboard().SetText(te.Text()); err != nil {log.Print('Copy: ', err)}},},PushButton{Text: 'Paste',OnClicked: func() {if text, err := walk.Clipboard().Text(); err != nil {log.Print('Paste: ', err)} else {te.SetText(text)}},},TextEdit{AssignTo: &te,},},}).Run(); err != nil {log.Fatal(err)}}

以上可以实现复制和粘贴功能,并在指定的text里面显示,简单强大!

界面编写起来非常的简洁,事件处理也很方便,当然,如果想将生成的exe打包的话,就需要使用另外一个工具rsrc,同样可以在命令行中直接使用go命令来获取:

得到之后,需要在rsrc目录下进行编译,最后得到的rsrc.exe放入到GOROOT目录下,此刻就可以对exe文件进行打包啦。

打包的命令为:

其实我们发现在exe在编译运行之后,就会在目录下生成一个manifest文件,而打包就是将exe文件和manifest嵌入在一起发布,命令中的test.manifest就是程序生成的文件,接下来就可以将exe文件发布了。

最后还遇到一个问题,在打包之后运行exe的时候会出现doc窗口,这是因为在编译的时候将编译窗口融合在了一起,因此在build的时候使用

这样就可以避免出现这种情况了。

最后,分享另外一个drawing例子的画图框

(0)

相关推荐

  • RabbitMQ Golang教程(二)

    RabbitMQ Golang教程(二) 任务队列 什么是任务队列 ? 把要执行的任务放在队列中.使用较多的任务队列有machiney.Celery.goWorker.YTask.每一个任务队列都有自 ...

  • golang API开发过程的中的自动重启(基于gin框架)

    概要 实现方式 补充 syscall.Exec 概要 基于 golang Gin 框架开发 web 服务时, 需要时不时的 go build , 然后重启服务查看运行结果. go build 的过程集 ...

  • Golang有什么优势?GO语言入门!

    虽然Erlang和Golang同属于编程语言,但是很多人对它们的了解并不是很多,甚至有人觉得Erlang和Golang有着很大的联系,那么Erlang和Golang有什么区别呢? Erlang和Gol ...

  • RabbitMQ Golang教程(三)

    RabbitMQ Golang教程(三) 什么是发布/订阅? 创建一个队列每个任务只传递给一个工人,做些不同的事,向多个消费者传递一个消息.这就是所谓的"订阅/发布模式". 构建一 ...

  • Python在大部分领域都能胜任,为什么很多企业转向了Golang?

    或许很多人会说,性能在大多数情况下并非问题,我也这么认为,要不然就没有那么多流行的动态语言了.虽然,性能的确是一个很重要的考虑因素,但是当因性能而严重降低了项目的开发进度,也得不偿失,特别是初创企业. ...

  • 基于golang的redis使用

    基于golang的redis使用 下载package go get github.com/garyburd/redigo/redis redis 在使用中.会涉及到set.Mset.expire.lp ...

  • 基于golang实现的redis连接池

    基于golang实现的redis连接池 代码篇: package mainimport ( "fmt" "github.com/garyburd/redigo/redis ...

  • RabbitMQ Golang教程

    RabbitMQ Golang教程 首先,使用go get安装amqp go get github.com/streadway/amqp 发送 我们将消息发布者(发送者)称为 send.go,将消息消 ...

  • 基于golang分布式爬虫系统的架构体系v1.0

    基于golang分布式爬虫系统的架构体系v1.0 一.什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统.简单来说就是一群独立计算机 ...

  • [Go]Golang 1.16 中 Modules的主要变化更新

    本文转载,目的方便查阅 01介绍 Golang 1.16 已经正式发布了,其中 Modules 有一些变化: 默认开启 Modules. 不自动修改 go.mod 和 go.sum. 通过指定 @ve ...

  • 30 张图讲解:Golang调度器GMP原理与调度全分析

    本文作者:刘丹冰Aceld 公众号同名 该文章主要详细具体的介绍Goroutine调度器过程及原理,可以对Go调度器的详细调度过程有一个清晰的理解,花费4天时间作了30+张图(推荐收藏),包括如下几个 ...