GO 语言 UI 组件库 govcl

LGPL
Google Go
跨平台
2017-10-10
不在乎y

由于现有第三方的Go UI库不是太大就是用的不习惯,或者组件太少。就萌生了自己写一个UI库的想法Delphi(Lazarus)有些许多优秀的VCL(LCL)组件,不拿来使用太可惜了。所以就索性做了一套。目前支持Win32Win64Linux64MacOS32(对于Linux64MacOS32提供有限的组件、属性及函数方法的支持)。 所有的命名都几乎按Delphi(Lazarus)中原有命名(除属性外,Read属性不带Get, Write属性带Set),熟悉Delphi(Lazarus)的很快能上手。

 

项目现在支持VCL(LCL)标准控件中的大部分,足以满足日常操作了,具体见"支持的组件列表"。
事件方面也支持部分,如下:

  TGoEvent = (geClick, geClose, geFormClose, geFormCloseQuery, geChange,
              geUpDownClick, geTreeViewChange, geListViewChange, geDblClick, gePaint,
              geResize, geShow, geMenuChange, geEnter, geExit, gePopup, geBalloonClick,
              geLinkClick, geExecute, geUpdate, geException, geTimer, geMinimize,
              geRestore, geHide, geKeyDown, geKeyPress, geKeyUp, geMouseDown,
              geMouseEnter, geMouseLeave, geMouseMove, geMouseUp, geMouseWheel,
              geListBoxDrawItem, geMenuItemDrawItem, geListViewColumnClick,
              geListViewColumnRightClick, geListViewGetImageIndex, geListViewSelectItem,
              geListViewItemChecked, geTreeViewGetSelectedIndex, geTreeViewGetImageIndex,
              gePageControlGetImageIndex, geListViewCompare, geTreeViewCompare,
              geListViewAdvancedCustomDraw, geListViewAdvancedCustomDrawItem,
              geListViewAdvancedCustomDrawSubItem,
              geTreeViewAdvancedCustomDraw, geTreeViewAdvancedCustomDrawItem,
              geToolBarAdvancedCustomDraw, geToolBarAdvancedCustomDrawButton);

简单示例:

package main

import (
   "gitee.com/ying32/govcl/vcl"
)

var (
   mainForm *vcl.TForm
)

func main() {
    vcl.Application.Initialize()
    mainForm = vcl.Application.CreateForm()
    mainForm.SetCaption("Hello")
    mainForm.EnabledMaximize(false)
    mainForm.ScreenCenter()
    vcl.Application.Run()
}

 

支持的组件列表:

现支持组件和非组件类列表:

TApplication
TForm
TButton
TEdit
TMainMenu
TPopupMenu
TMemo
TCheckBox
TRadioButton
TGroupBox
TLabel
TListBox
TComboBox
TPanel
TImage
TLinkLabel
TSpeedButton
TSplitter
TRadioGroup
TStaticText
TColorBox
TColorListBox
TTrayIcon
TBalloonHint
TCategoryPanelGroup
TOpenDialog
TSaveDialog
TColorDialog
TFontDialog
TPrintDialog
TOpenPictureDialog
TSavePictureDialog
TSaveTextFileDialog
TOpenTextFileDialog
TRichEdit
TTrackBar
TImageList
TUpDown
TProgressBar
THotKey
TDateTimePicker
TMonthCalendar
TListView
TTreeView
TStatusBar
TToolBar
TPageControl
TTabSheet
TControl TActionList
TToolButton
TPaintBox
TTimer
TCategoryPanel

TIcon
TBitmap
TMemoryStream
TFont
TStrings
TStringList
TBrush
TPen
TMenuItem
TListGroups
TPicture
TListColumns
TListItems
TTreeNodes
TListItem
TTreeNode
TScreen
TMouse
TListGroup
TListColumn
TCollectionItem
TStatusPanels
TStatusPanel
TCanvas
TObject
TPngImage
TJPEGImage
TGIFImage
TGIFFrame
TIniFile
TRegistry
TClipboard
TMonitor
TMargins
TList
TGraphic
TComponent
TStyleManager

的码云指数为
超过 的项目
加载中

评论(17)

lemonwater
lemonwater
报错了,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.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

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

Golang绑定VCL和LCL组件

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

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

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

2017/11/07 18:54
12.5K
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部