Gox语言侧重于快速应用,只需要几行代码就可以实现复杂的功能,所以有很多内置的函数库可以直接使用。截屏是一个非常实用的功能。Gox内置了github.com/kbinani/screenshot包,支持跨平台截屏、多显示器和指定区域截屏。然后,我们添加了一些改进。在对界面进行截图后,我们展示了用Sciter包编写的图形界面上的图片。进一步,我们可以在后续增加截图编辑等功能。
代码如下:

程序运行效果截图如下:

可以看到,在屏幕截图之后弹出的图形界面窗口中显示了四个相同的屏幕截图。整个图形界面的代码非常简单易懂。
在代码中做了详细的注释,其他解释如下:
Sciter包主要利用HTML/CSS/Tiscript来进行图形界面开发,可以开发本地GUI界面;Gox中通过Go语言的绑定包来与Sciter互动,可以互相传递数据或者调用函数;也可以通过Gox代码控制界面中的DOM元素,甚至执行回调函数;Gox语言中使用Sciter包,只需要在执行或分发时附带一个动态链接库文件,Windows下已经随Gox的压缩包一起提供了,也可以用gox -initgui命令获取最新的DLL文件;Linux或MacOS下请参看这里的安装说明,只需进行前两步安装动态链接库的步骤即可;为了演示在Sciter制作的界面中的图形标签的各种写法,本例在截图后共展示了4次相同的该截图图片;第一幅图片使用了HTML中的picture标签,第二幅图片是用一般的img标签实现的,第三幅图片使用了Sciter特有的“#”号开始的id定义方式,第四幅图片则是在Gox代码中进行操作的。Sciter包主要使用HTML/CSS/Tiscript进行图形界面开发,可以开发本地GUI界面;X中的Go通过Go语言的绑定包与Sciter交互,可以传递数据或调用函数;还可以通过Gox代码控制界面中的DOM元素,甚至执行回调函数;Gox语言使用Sciter包,执行或分发时只需要附加一个动态链接库文件。Windows下的Gox压缩包已经提供了,也可以使用gox -initgui命令获取最新的DLL文件。在Linux或MacOS下,请参考这里的安装说明,只需走前两步安装动态链接库即可。为了演示Sciter界面中图形标签的各种书写方法,本例在截图后四次显示同一个截图图片。第一张图片使用HTML中的图片标签,第二张图片用通用的img标签实现,第三张图片使用Sciter特有的“#”id定义方法,第四张图片用Gox代码操作。
注意:
Gox语言是脱胎于Go语言的开源脚本语言,解释和执行。然而,与Go语言相比,GOX语言更接近高级语言,其语法没有那么严格的限制。它是一种偏向于快速应用的语言,也可以说是一种集成工具;Gox语言的主要优势有:第一,Gox语言本身只有一个可执行文件,绿色环保,无需配置,下载后即可使用。不需要安装Go语言环境并进行编译,非常适合在云服务器上进行快速原型和远程开发;其次,Gox可以直接使用大部分Go语言标准库的对象和方法函数,还内置了很多常用的、优秀的第三方库,充分发挥Go语言多年积累的资源优势;第三,与许多其他主流语言不同,Gox语言侧重于解决GUI图形界面编程的问题。它内置了基于Giu、LCL和Sciter的三套图形界面编程库,可以快速高效地直接开发图形界面,特别适合编写演示原型系统。作为脚本语言,Gox语言的性能肯定没有Go语言这样的编译语言快。但由于Gox语言和Go语言的紧密联系,用Gox语言编写的脚本可以很容易地改写成Go语言代码,编译执行后就可以发挥Go语言的速度优势。所以Gox语言也适用于Go语言的初始调试,更直接的方法是使用Gotx,它是一个和Go语言语法相同的解释器。可以理解为集成了Go语言标准库和众多第三方库的解释和执行的Go语言,不需要搭建Go语言环境。Gotx和Gox的区别在于,Gotx仍然遵循Go语言的语法,代码相对复杂,限制更多。但是重新编写back to Go语言进行编译执行时,基本没有成本。
gox官网在这里,也可以直接在浏览器搜索引擎搜索“Gox语言”。Github页面在这里,可以看到很多Gox语言的学习指南和实际应用实例。


