page contents

跨平台Golang GUI库 - GoVCL -简介

GoVCL(全称:Go Language Visual Component Library)是一款小巧的跨平台原生Golang GUI库,底层绑定自Lazarus的GUI库。 初衷 项目最初来源于自己的gofmx实验项目,当初做gofmx项目遇到了...

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

  • 发表于 2021-07-08 11:50
  • 阅读 ( 1515 )
  • 分类:Golang

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章