govcl 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
govcl 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
govcl 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
govcl 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
govcl 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache License 2.0
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发UI组件库
开源组织
地区 国产
投 递 者 不在乎y
适用人群 未知
收录时间 2017-10-10

软件简介

一、什么是govcl

GoVCL是完全开源的、免费的、跨平台Go语言GUI库。核心绑定自Lazarus创建的通用跨平台GUI库liblcl 。

二、为什么要自己做

现在开源的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  
Linux Ubuntu 16.04、Linux Mint 17.1、Deepin 15.5、Linux Mint 19  
MacOS macOS 10.12、10.13  
Raspberry pi(ARM)    
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (20)

加载中
打分: 还行
报错了,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
2018/01/05 09:39
回复
举报
不跨平台有意义吗?
2017/12/22 08:26
回复
举报
又来一堆类库、一堆包来支持所谓的跨平台?
2020/07/10 08:57
回复
举报
打分: 力荐
做的好!
2017/12/21 12:54
回复
举报
打分: 力荐
不错 , govcl 再加个ui编辑器 支持 ios Android 就无敌了
2017/11/09 09:15
回复
举报
这样就抛弃了跨平台的优势, 意义不大
2017/10/26 17:17
回复
举报
打分: 力荐
看到你的go调用delphi的vcl,感觉挺好的,但我运行时需要libvclx64.dll,按你说的我下载了delphi10.2,打开你的vcl项目,只能看到target是win32的,怎么生成x64的啊?或者让go程序强制使用libvcl.dll也行,盼复!谢谢! qq466183 聆天鸣
2017/10/17 12:57
回复
举报
2017/10/17 09:05
回复
举报
mark
2017/10/16 11:43
回复
举报
这么多组件,工作量巨大,应该是直接拿VCL来用。@hutucha
2017/10/16 11:19
回复
举报
没有看明白,是把Delphi的VCL库直接拿来用,还是自己用Go语言高仿重写了Go语言版的VCL?看文章的内容似乎是第一种情况,直接拿VCL的库来用。...
2017/10/16 09:58
回复
举报
更多评论
发表于大前端专区
2020/08/23 14:56

GoVCL 2.0.6 正式发布,跨平台 Go 语言 GUI 库

GoVCL是一款轻量级的go语言GUI库,基于Lazarus创建的liblcl ,使得编写一个跨平台的GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 限制:liblcl二进制要求>=2.0.6。 添加:新的tag:finalizerOn默认不开启,开启后,非组件Newxxx之后无需手动调用Free(实验性)。 删除:TCanvas移除TextRect3方法,之后改用TextRect2替代。 修改:TCanvas修改TextRect2方法参数text *string-> text string。 增加:TImageButton支持纵向...

3
12
发表于大前端专区
2020/07/27 20:53

GoVCL 2.0.5 正式发布,跨平台 Go 语言 GUI 库

GoVCL是一款轻量级的go语言GUI库,基于Lazarus创建的liblcl ,使得编写一个跨平台的GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 限制:要求最小liblcl二进制版为2.0.5。 添加:TListView、TTreeView、TListItem、TTreeNode添加一些新的方法和属性。 修复:liblcl:修复rtl.SysOpen在Windows下包含中文时打开失败问题(#42)。 增加:添加一个simplecalc例子,主要用于另一种自动布局演示。 增加:TListColumn添加SortI...

2
20
发表于软件架构专区
2020/07/10 01:21

GoVCL 2.0.4 正式发布,跨平台 Go 语言 GUI 库

GoVCL是一款简单+小巧+原生的go语言GUI库,依靠着Lazarus LCL使得编写一个跨平台的GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 修改:liblcl:切换至Lazarus 2.0.10版本编译,Fixes for 2.0.10 。 限制:要求liblcl二进制版本>=2.0.4 修复:修复新添加的组件未注册问题。 修改:TMovedEvent事件由3个参数变更为4个参数,添加isColumn参数。 变更:TStringGrid和TDrawGrid移除SetOnColumnMoved和SetOnRowMoved方法,并添...

2
15
发表于大前端专区
2020/06/22 21:29

GoVCL 2.0.3 正式发布,跨平台 Go 语言 GUI 库

GoVCL是一款简单+小巧+原生的go语言GUI库,依靠着Lazarus LCL使得编写一个跨平台的GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 添加:TTreeView添加AlphaSort方法。 修复:修复一些枚举常量未导出问题。 添加:TRadioButton和TCheckBox添加OnChange事件。 增加:TMiniWebView:ExecuteScript和ExecuteJS方法支持返回值。 增加:部分控件添加Showing属性。 增加:win包中新添加一些Windows API、常量、类型。 删除:移除...

10
14
发表于大前端专区
2020/05/15 17:11

GoVCL 2.0.2 正式发布,跨平台 Go 语言 GUI 库

GoVCL是一款简单+小巧+原生的go语言GUI库,依靠着Lazarus LCL使得编写一个跨平台的GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 限制:当前版本限制liblcl二进制最低版本为2.0.2(因为liblcl中有改变)。 添加:尝试添加一个TRichEdit组件(一个第三方组件)及相关例子。 删除:删除pkgs/skinh包,及相关例子,因为这个只能在Windows 32bit下使用,还是一个第三方的,效果也不好。 添加:补充一些LCL控件的属性,主要是原...

10
50
发表于大前端专区
2019/07/01 16:20

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

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 新增:增加一个listviewadv1例子。 新增:liblcl:部分控件新增“AddItem”方法。 修复:liblcl:修复“TDateTime”时区问题。 新增:liblcl:支持“TCalendar”构建(实际为“TMonthCalendar”)。 新增:libvcl:添加兼容Lazarus设计器的TCalendar类。 新增:liblcl:为所有继承...

6
27
发表于大前端专区
2019/06/03 10:45

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

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 修复: Windows下liblcl某些控件不能正确应用Windows Theme问题。 新增:win包添加Windows API: EnumWindows、EnumChildWindows、SetBkMode以及一些Windows下ListView常量。。 新增:添加一个simplelibvlc测试例程(已在Windows、MacOS、Linux Mint下测试通过)(主要测试可行性)...

4
33
发表于大前端专区
2019/05/14 06:02

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

govcl是一款简单+小巧+原生的go语言GUI库,依靠着Delphi VCL/Lazarus LCL两棵大树使得写一个GUI软件不再是一件麻烦的事。 本次更新: -- govcl -- 1、liblcl添加TApplication.RestoreTopMosts方法,用来兼容libvcl。 2、自动绑定事件中,如果组件不支持某个事件则打印提示。 3、"liblcl"源码更新至Lazarus 2.0版本LCL库,Lazarus_2.0.0_release_notes、Lazarus_2.0_fixes_branch。 4、添加一些TTreeView常量和结构。 5、TListVi...

5
31
发表于大前端专区
2018/01/05 14:16

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

govcl 1.2.0 已发布,此版本增加了对 Linux64、macOS 有限的组件、事件、方法及属性的支持。 所谓有限的支持意味着原本在 Windows 下正常工作的组件或者方法之类的在 Linux 或者 macOS 上不能正常工作。 之所以存在这样是原于使用了两套不同的组件库及编译器,差别过大。 由于现有第三方的 Go UI 库不是太大就是用的不习惯,或者组件太少。就萌生了自己写一个 UI 库的想法。Delphi(Lazarus) 有些许多优秀的 VCL(LCL) 组件,不拿...

8
6
发表于大前端专区
2018/01/04 16:20

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

更新内容: TTreeView增加TTVAdvancedCustomDrawEvent、TTVAdvancedCustomDrawItemEvent事件 TListView增加TLVAdvancedCustomDrawEvent、TLVAdvancedCustomDrawItemEvent、TLVAdvancedCustomDrawSubItemEvent事件 TToolBar增加TTBAdvancedCustomDrawEvent、TTBAdvancedCustomDrawBtnEvent事件 增加TCustomDrawTarget、TCustomDrawStage、TCustomDrawState、TTBCustomDrawFlags枚举和集合类型 增加listviewcustomdraw示例 增加T...

8
12
发表了资讯
2017/12/30 00:33

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

1、修改 保证稳定前提下改变DLL中函数的调用方式,新的库可以捕捉到DLL内部的异常并显示,不再因为异常造成程序崩溃; 2、增加 TMaskEdit、TBitBtn、TBevel、TCheckListBox、TGauge、TScrollBar、TScrollBox、TShape组件; 3、增加 Winapi: LoadIconW、GetModuleHandleW; 4、增加 TApplication.SetIconResId方法,用于快捷加载资源中的icon; 5、增加 Exception类; 6、调整 StyleManager实例并移除Initialize、UnInitialize方...

4
11
发表了资讯
2017/12/21 08:56

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

1、增加了TListView、TTreeView、TPageControl几个事件; 2、增加了TListView、TTreeView排序过程; 3、修复了New控件时使用CheckPtr增加安全检测; 4、增加了TListView、TTreeView排序,图像列表,右键菜单演示例程; 5、预增加了加载gfm格式窗口设计器文件,并提供相关例程。

13
20
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2019/05/13 22:31

govcl - 简介(一)

### 一、什么是govcl govcl是一款简单+小巧+原生的go语言GUI库,内部通过绑定Delphi VCL/Lazarus LCL来实现。 ### 二、为什么要自己做 现在开源的go UI库也有不少,自己也尝试简单使用过go-qt、lxn/walk、andlabs/ui、go-sciter等,但都不如意,缺失的太多,有些处在停止更新,有些二进制依赖太多太臃肿、有些组件太少、有些非原生、有些不易使用等等各种问题,基于这些原因我决定自己造个轮子。 ### 三、学习govcl是否需要懂P...

0
0
发表了博客
2017/09/25 13:47

Golang绑定VCL和LCL组件

## 一个跨平台的Golang GUI库,底层绑定自Delphi VCL和Lazarus LCL ---- **从1.2.0版本开始govcl将最低要求go1.9。** ---- [![license](https://img.shields.io/badge/开源协议-Apache%20License%202.0-green.svg)](https://github.com/ying32/govcl/blob/master/LICENSE) ![Minimum Go version](https://img.shields.io/badge/最低Go版本-1.9.0-green.svg) [![screenshots](https://img.shields.io/badge/例程截图-查看-green....

2
5
发表了博客
2017/11/07 18:54

10月新增开源项目:号称最快的 Node.js 应用框架来了

立冬已过,人们认为这是夏天的终结,冬天的开始。立,建始也;冬,终也,万物收藏也。不过在开源的世界里,开发者并不畏惧寒冷,对技术的不懈追求也未曾终结。 开源的世界总是精彩纷呈,十月份,开源中国社区总共收录了 182 个开源项目。在林林总总的开源项目中,有哪些值得关注的东西呢,我们不妨继续往下看 —— 作为开发者,让项目跑得更快一直是坚持不懈的追求。一个号称是目前最快的 Node.js 应用框架横空出世 —— Fastif...

16
135
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
20 评论
227 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部