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


Apache License 2.0
跨平台
Google Go

软件简介

一、什么是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
有些问题。
主要是因为uxtheme.dll引起的,相关解决方法见[FAQ](https://gitee.com/ying32/govcl/wikis/pages?title=Windows- XP%E4%B8%8B%E5%85%B3%E9%97%AD%E6%97%B6uxtheme.dll%E9%94%99%E8%AF%AF%E5%AF%B9%E8%AF%9D%E6%A1%86%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95&parent=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组件有问题,其他似乎没啥大问题