GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。

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

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

Part One:安装Walk

在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网的Install帮助。另外,注意:这个Walk库只能运行在Go 1.1.x及以上。

要安装Walk很简单,只要运行命令:go get github.com/lxn/walk

  等待命令执行完毕,这时候检查GOPATH的src与pkg下,是否有符合自己计算机环境的walk目录。(我的电脑的CPU架构为AMD64,则会在%GOPATH%\windows_amd64\github.com\lxn下出现一个walk文件夹与编译完成的a文件,另外在%GOPATH%\src\github.com\lxn下也会出现walk的源代码)

  我们还要安装一个工具rsrc,以完成后期的打包工作,执行命令:go get github.com/akavel/rsrc

  等待命令执行完成,然后检查,步骤与上文相仿,不再多说。

Part Two:使用Walk

  这里不讲述具体的编码方式,开源的项目都可以自己看懂,而且官方也给了不少的例子,可以让你彻底了解这个库。这部分里主要讲Walk项目的编译生成。

  和其他语言的界面库相比,这个库有一点比较独特。它所生成的exe文件只有依赖于manifest才能正常运行(在其他GUI程序中,这个文件多数用于生成XP样式)。而go却没有提供资源打包的所有功能(至少在我的LiteIDE中找不到),所以要把manifest嵌入exe文件中,还需要一个工具:rsrc。

  这个工具已经在前部分中成功安装。此工具的作用是简单地将一些文件打包在syso文件中,go的编译器就可以把这些文件嵌入到exe文件中了。

  嵌入manifest的命令很简单:rsrc –manifest %manifestpath% –o % sysopath%

  比如我们要为test.exe打包一个manifest文件,只要这样做:rsrc -manifest test.manifest -o rsrc.syso

  执行完命令后,把rsrc文件移动到src下的项目目录,再执行编译命令。这时候,编译出来的exe就可以独立运行了。当然,如果你不喜欢这种方法,还可以把xxx.manifest文件改名为xxx.exe.manifest,程序同样能执行,但是发布时,必须要带着此文件一起发布。

  这个命令还有很多有趣的功能,如给exe文件加上自己喜欢的图标,命令为:rsrc -manifest main.manifest –ico icon.ico -o rsrc.syso

附录:

网上对syso文件的介绍甚少,经过我对源码的研究及生成后PE的查看。发现syso文件就是go官方对于“程序对象归档”所搞出来的一个东西,说白了就与Win下的资源文件相似。PE查看器也说明了这就是一个资源文件,存放在rsrc程序段中。

Go与GUI——GO语言的图形界面Walk的更多相关文章

  1. Java GUI图形界面开发工具

    Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需 ...

  2. Python 图形界面(GUI)设计

    不要问我为什么要用 Python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,Python 图形界面有以下几个可行度比较高的解决方案. 1. py ...

  3. AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件

    AWT提供了Java Applet 和Java Application中可用的用户图形界面 GUI 中的基本组件( component s). 由于Java是一种独立于平台的 程序设计语言 ,但GUI ...

  4. 十. 图形界面(GUI)设计1.图形界面设计基础

    早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上.现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单.按钮等,用户通过鼠 ...

  5. Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产(使用cef 内核)

    Go 在 Windows 上用户图形界面 GUI 解决方案 Go-WinGUI 国产 Go 在服务端的优势不容置疑,但是在桌面应用上却没有好的 GUI 支持,本项目是 Go 语言在 Windows 上 ...

  6. python图形界面(GUI)设计

    不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. py ...

  7. 虚拟机下Ubuntu没有GUI图形界面,解决方法

    先说下快捷键,CLI切换到GUI:Ctrl+Alt+F7: GUI切换到CLI:Ctrl+Alt+F1. 今天折腾虚拟机时,打开Ubuntu后显示的是命令行界面,按快捷键后并没转换到图形界面,而是一直 ...

  8. CentOS 7安装Gnome GUI 图形界面

    当你安装centos服务器版本的时候,系统默认是不会安装 CentOS 的图形界面程序的,比如:gnome或者kde, 那么如果你想在图形界面下工作的话,可以手动来安装CentOS Gnome GUI ...

  9. 几款开源的图形界面库(GUI Libraries)

    SmartWin++ 遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows ...

随机推荐

  1. rank() | dense_rank() | row_number() over(PARTITION BY sex order by age desc ) 的区别

    1.row_num() over()函数:根据某个字段排序后编号1,2,3.. select *,ROW_NUMBER() over ( order by majorid) as numfrom St ...

  2. web pack的使用事项

    一开始把webpack想的很难,很复杂,哈哈. 其实写的好的东西真的是越简单,越简单的东西其实越难写. 按照How to一步一步基本就能理解,webpack怎么使用了, 后面就是如何帮程序一步一步找到 ...

  3. OpenCV训练分类器制作xml文档

    OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...

  4. JavaScript 要点(十六)RegExp 对象

    RegExp:是正则表达式(regular expression)的简写. RegExp 对象 正则表达式是描述字符模式的对象. 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大 ...

  5. 在ubuntu上面配置nginx实现反向代理

    1.下载nginx    官网:http://nginx.org/en/download.html    直接在服务器上下载 wget http://nginx.org/download/nginx- ...

  6. hdu 5465 Clarke and puzzle 二维线段树

    Clarke and puzzle Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  7. [Whole Web] [Node.js] Using npm run to launch local scripts

    npm run allows you to configure scripts inside of your package.json file which can access locally in ...

  8. UVA - 10883 Supermean

    Description Problem F Supermean Time Limit: 2 second "I have not failed. I've just found 10,000 ...

  9. [原创]如何写好SqlHelper

    所有写数据库应用的都会遇到SqlHelper.每个人实现的也不同,网上现成的例子也很多.但在实际操作中,大部分都不实用.什么样的才是实用的?答:适合应用场景的! 下面来介绍下我写的一个关于Oracle ...

  10. Eclipse插件-easy-explore-1.0.4

    下载地址:http://sourceforge.net/projects/easystruts/files/Easy%20Explorer%20for%20Eclipse/easy-explore-1 ...