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 linux 界面,Go与GUI——GO语言的图形界面Walk相关推荐

  1. C语言运行界面字体,C语言实现图形界面登陆窗口.docx

    纯C语言实现图形界面登陆窗口 一下是界面图: 编程工具是:VC6.0 请根据个人需要对源代码进行修改使用,图片放在工程文件夹中.新建时应该将文件后缀设置为.cpp 以下是程序灯源代码: #includ ...

  2. linux安装DM7数据库和初始化实例--无图形界面

    linux安装DM7数据库和初始化实例–无图形界面 1.创建安装用户,用户组 #1.创建安装用户组 groupadd -g 12349 dinstall #2.创建安装用户dmdba useradd ...

  3. 能用c语言编写图形界面吗,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  4. c语言 显示 图形界面,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  5. 用c语言开发图形界面,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  6. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;

    前言   对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...

  7. java gui 层次结构_javaGUI教学图形界面的层次结构.ppt

    第六章GUI Graphics User Interface图形用户界面 浅谈图形界面开发 最常见的图形界面:windows操作系统 学习GUI的方法与内容 一.图形对象的布局(显示的内容如何摆放) ...

  8. Linux虚拟机最小化安装后转换成图形界面(图文详解)

    最小化安装转换成图形界面详细步骤(亲测有效) 一.设置网卡,让网络能通 二.重启网卡 三.更新版本信息 四.安装图形化界面 五.进入虚拟机,选择许可证(选择完成后,如果出现长时间等待卡死的情况,可以重 ...

  9. 06 java GUI 网络编程:图形界面聊天室

    仿照第4篇笔记的形式,笔者决定将GUI和网络编程部分用综合练习的方式来总结.练习项目是有图形界面的聊天室,用到了GUI中的javax.swing包和网络编程中的TCP/socket编程.GUI部分的难 ...

最新文章

  1. java中集合的结构Set类型
  2. Introdution to 3D Game Programming With DirectX11 第11章 习题解答
  3. linux的搜索和时间
  4. HTML实现点击时的阴影(:active)(已解决iOS微信上无法使用)
  5. 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)
  6. 【JAVA复习系列】第一部分
  7. 算法基础知识总结(数学知识)
  8. 【python实战】二:乒乓球比赛对手问题
  9. HTML转PDF浅析
  10. 我的世界丛林风景Mac动态壁纸
  11. 计算机应用技术 自然语言处理,基于词联接的自然语言处理技术及其应用研究-计算机应用技术专业论文.docx...
  12. selenium如何通过快捷键关闭浏览器打开的新页签
  13. VMware ESX Server 常用命令行
  14. 知乎高赞的7个顶级资源网站,记住了帮你减少一半的搜索时间
  15. 深度学习中,偏置(bias)在什么情况下可以要,可以不要?
  16. Oracle数据库系统结构一(存储结构)
  17. 给打算找技术工作的毕业生几点建议
  18. Provides transitive vulnerable dependency org.yaml:snakeyaml:1.33
  19. 一种基于物理信息极限学习机的PDE求解方法
  20. QT课程设计:基于QT的图像处理程序

热门文章

  1. yolov5安全帽检测、反光衣检测、抽烟检测
  2. 数据库还原可疑.无法打开数据库'XX'版本 611.请将该数据库升级为最新版本.
  3. JavaScript内置对象2
  4. java如何找到程序入口_系统分析---入门(如何确定java应用的入口)
  5. 【汇智学堂】JAVA多线程实现的小游戏-弹球-1
  6. windows10 Failed to initialize NVML: Unknown Error
  7. 钢七连实战C2-P1:游戏编程 大地图移动
  8. 创业到底是要干什么?
  9. Redis持久化的两种方式
  10. 单例模式php应用场景,php单例模式 使用场景和使用方法