attachments-2021-07-LhsUd2yI60e675ea39892.png

GoVCL(全称:Go Language Visual Component Library)是一款小巧的跨平台原生Golang GUI库,底层绑定自Lazarus的GUI库。

初衷

项目最初来源于自己的gofmx实验项目,当初做gofmx项目遇到了些问题,后来不知道怎么的就放弃了。时隔8个多月后想起来试试移植VCL,一开始并没有打算做完整的,只是实验下,偶然间解决了之前做gofmx的遇到的问题,然后就一发不可收拾,捡起以前gofmx的生成器改为govcl的,一路也不是这么顺畅,踩坑很多。慢慢的随着各种需求又加入了基于LCL组件的跨平台方案、独立的GOVCL UI设计器等。从项目发布到现已经一年多了,涵盖了Lazarus LCL大部分的标准组件, 完善度也越来越高。 依靠Delphi/Lazarus这两棵大树使得govcl变得简单易用,稳定性也不差。

为什么要自己做

  现在开源的go UI库也不少,自己也尝试简单使用过go-qt、lxn/walk、andlabs/ui、go-sciter等,但都不如意,缺失的太多。有些处在停止更新,有些二进制依赖太多太臃肿、有些组件太少、有些非原生、有些不易使用等等各种问题。基于这些原因我决定自己造个轮子。govcl的目标为 简单 + 小巧 + 原生。

学习govcl是否需要懂Pascal语言?

不需要懂Pascal语言,仅仅只需要了解控件的使用方法和相关的属性及事件之类的。除非你需要修改libvcl或者liblcl的源代码才会涉及到Pascal语言。

优/缺点

优点

   UI库小,用UPX压缩下也就1M-2M大小的,无依赖,简单,特别是加上使用可视化的设计器或者res2go工具能快速生成UI,免去了手动创建的烦恼。控件多,属性多,事件多,对于一些工具开发足以。

缺点

   因为UI库全是原生组件,那么要做到像DirectUI那样的就是很麻烦的事了,所以这算是govcl现在的一大遗憾吧。一些比较简单的美化界面还是相对容易做到。

Go版本建议

当前开发基于go1.9.2版本,从govcl 1.2.0开始,最低只支持go1.9。 v1.2.0之前的已测在go1.5也可编译运行

另外由于govcl项目太大已经不适合使用go 32位的编译器了编译代码了,建议使用go 64位的编译器编译,否则在编译的时候就容易造成内存溢出。

govcl主要代码已经达到13万多行,例程差不多3万行,libvcl+liblcl+res2go约20多万行。

已测试的各个系统平台情况

attachments-2021-07-47IiQOBq60e675aa3e919.png

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-g2iqCnUd62ad35a052d8b.jpeg