跨平台的Go语言GUI组件库 govcl

Apache License 2.0
Google Go
跨平台
2017-10-10
不在乎y

一、什么是govcl

govcl是一款简单+小巧+原生的go语言GUI库,内部通过绑定Delphi VCL/Lazarus LCL来实现。

二、为什么要自己做

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

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

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

四、优/缺点

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

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

五、支持平台

目前govcl支持WindowsLinuxmacOS并提供相应的预编译二进制供测试使用。如需支持更多的平台可参考Lazarus所支持的平台。

六、Go版本建议

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

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

系统 已经测试系统版本 说明
Windows Windows XP、Windows7、Window10 目前只对Windows Vista之上系统比较友好,对Windows XP<br />有些问题。<br />主要是因为uxtheme.dll引起的,相关解决方法见FAQ中的
Linux Ubuntu 16.04、Linux Mint 17.1、Deepin 15.5、Linux Mint 19  
MacOS macOS 10.12、10.13 注:从macOS 10.14后不再支持32位应用,Lazarus2.0带来了较为稳定的cocoa接口了。
Raspberry pi   使用CodeTyphon交叉编译为arm格式。暂发现Menu组件有问题,其他似乎没啥大问题
的码云指数为
超过 的项目
加载中

评论(19)

RafaelShin
RafaelShin
报错了,panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x8 pc=0x51bf89] goroutine 1 [running]: gitee.com/ying32/govcl/vcl.(*TApplication).Initialize(0x0) E:/GOPATH/src/gitee.com/ying32/govcl/vcl
bkkkd
bkkkd
不跨平台有意义吗?
笑笑小兵
笑笑小兵
做的好!
mmogm
mmogm
不错 , govcl 再加个ui编辑器 支持 ios Android 就无敌了
KeyuGG
KeyuGG
这样就抛弃了跨平台的优势, 意义不大
言身寸言身寸
言身寸言身寸
看到你的go调用delphi的vcl,感觉挺好的,但我运行时需要libvclx64.dll,按你说的我下载了delphi10.2,打开你的vcl项目,只能看到target是win32的,怎么生成x64的啊?或者让go程序强制使用libvcl.dll也行,盼复!谢谢! qq466183 聆天鸣
jingshishengxu
jingshishengxu
SkipperD
SkipperD
mark
FreeZ
FreeZ
这么多组件,工作量巨大,应该是直接拿VCL来用。@hutucha
糊涂茶
糊涂茶
没有看明白,是把Delphi的VCL库直接拿来用,还是自己用Go语言高仿重写了Go语言版的VCL?看文章的内容似乎是第一种情况,直接拿VCL的库来用。...

govcl 1.2.5 正式发布,跨平台 Go 语言 GUI 库

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 新增:增加一个listviewadv1例子。 新增:l...

2019/07/01 16:20

govcl 1.2.4 正式发布,跨平台 Go 语言 GUI 库

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 修复: Windows下liblcl某些控件不能正确应...

2019/06/03 10:45

govcl 1.2.3 正式发布,跨平台 Go 语言 GUI 库

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 1、liblcl添加TApplication.RestoreTopMost...

2019/05/13 21:03

govcl 1.2.0 更新发布,GO 语言 UI 组件库

govcl 1.2.0 已发布,此版本增加了对 Linux64、macOS 有限的组件、事件、方法及属性的支持。 所谓有限的支持意味着原本在 Windows 下正常工作的组件或者方法之类的在 Linux 或者 macOS 上不能...

2018/01/05 14:16

govcl 1.1.3 版本更新,GO 语言 UI 组件库

更新内容: TTreeView增加TTVAdvancedCustomDrawEvent、TTVAdvancedCustomDrawItemEvent事件 TListView增加TLVAdvancedCustomDrawEvent、TLVAdvancedCustomDrawItemEvent、TLVAdvancedCustom...

2018/01/04 16:20

govcl 1.1.0 发布更新,GO 语言 UI 组件库

1、修改 保证稳定前提下改变DLL中函数的调用方式,新的库可以捕捉到DLL内部的异常并显示,不再因为异常造成程序崩溃; 2、增加 TMaskEdit、TBitBtn、TBevel、TCheckListBox、TGauge、TScroll...

2017/12/30 00:33

govcl v1.0.4 释出,GO 语言 UI 组件库

1、增加了TListView、TTreeView、TPageControl几个事件; 2、增加了TListView、TTreeView排序过程; 3、修复了New控件时使用CheckPtr增加安全检测; 4、增加了TListView、TTreeView排序,图像...

2017/12/21 08:56

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

govcl - 简介(一)

一、什么是govcl govcl是一款简单+小巧+原生的go语言GUI库,内部通过绑定Delphi VCL/Lazarus LCL来实现。 二、为什么要自己做 现在开源的go UI库也有不少,自己也尝试简单使用过go-qt、lxn/w...

2019/05/13 22:31
100
0
Golang绑定VCL和LCL组件

一个跨平台的Golang GUI库,底层绑定自Delphi VCL和Lazarus LCL 从1.2.0版本开始govcl将最低要求go1.9。 注: linux和macOS由于底层使用了lcl库,则部分组件、属性和方法无效。 如果你想要支持...

2017/09/25 13:47
506
0
10月新增开源项目:号称最快的 Node.js 应用框架来了

看看开源中国社区十月份有哪些值得关注的新增项目:百度研发的移动端深度学习框架 MDL,号称是目前最快 Node.js 应用框架之一的 Fastify,Go 语言实现的分布式全文搜索引擎 riot 等等……希望...

2017/11/07 18:54
1.3W
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部