[golang/gui库/govcl]energy 似乎是又一个国人写的 go 语言 gui 库
clq
浏览(404) -
2023-08-21 16:52:24 发表
编辑
关键字:
[2024-06-22 22:50:25 最后更新]
[golang/gui库/govcl]energy 似乎是又一个国人写的 go 语言 gui 库
https://github.com/energye/energy
https://gitee.com/energye/energy
包含了 cef 和 lcl 。
改天试试。
可以和 cef2go 对比一下。
----------------------------------------------------------------
看了一下,应该是也用了 govcl 的库。应该是进行了扩展。
--------------------------------------------------------
一定要注意,各个版本的二进制文件支持情况不同。
https://energy.yanghy.cn/course/100/6364c5c2a749ba01d04ff485
--------------------------------------------------------
另外,可参考
https://github.com/ying32/liblcl/blob/master/src/MiniWebviewMac.inc
这是作者自己写的控件
https://gitee.com/ying32/govcl/wikis/%E5%B0%86GoVCL%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E5%AE%89%E8%A3%85%E5%88%B0Lazarus%20IDE%E4%B8%AD
"将GoVCL自定义组件安装到Lazarus IDE中"
自定义组件列表:
TImageButton(四态图按钮控件)
TGauge(图形进度条,支持几种样式)
TLinkLabel(超链接标签)
TRichEdit(富文本框)
TXButton(主要是用颜色控制不同状态+背景图类的按钮)
TMiniWebview(简易的浏览器组件)
对直接使用 lazarus 的网友也很具有参考意义,强烈推荐!
--------------------------------------------------------
参考来源以下文章,另外文中有一个和官方示例不同的 TForm 使用方法,和要在 oncreate 中处理初始化是不同的。以后注意区分一下差别。
https://www.jianshu.com/p/01f9e4b58823
vcl.Application.Initialize()
mainForm := vcl.Application.CreateForm()
mainForm.SetCaption(context.WindowTitle)
mainForm.EnabledMaximize(false)
mainForm.ScreenCenter()
mainForm.SetOnCloseQuery(func(Sender vcl.IObject, CanClose *bool) {
*CanClose = vcl.MessageDlg("是否退出?", types.MtConfirmation, types.MbYes, types.MbNo) == types.IdYes
})
//菜单区域
mainMenu := vcl.NewMainMenu(mainForm)
item := vcl.NewMenuItem(mainForm)
item.SetCaption("File(&F)")
mainMenu.Items().Add(item)
item2 := vcl.NewMenuItem(mainForm)
item2.SetCaption("Settings")
item2.SetOnClick(func(vcl.IObject) {
vcl.ShowMessage("Click")
})
item.Add(item2)
vcl.Application.Run()
--------------------------------------------------------
另外
https://github.com/ying32/liblcl
中的说明也是很重要的。要不有些行为您会觉得很奇怪。
----
lcl 的 TMiniWebview 是可以直接在 lazarus 中使用的,不一定要安装。例如
web1:TMiniWebview;
procedure TForm1.FormCreate(Sender: TObject);
begin
//MiniWebviewWin.inc
web1 := TMiniWebview.Create(application);
web1.Parent := self;
web1.Align := alclient;
web1.Show;
web1.Navigate('baidu.com');
个人认为其中的控件代码很值得研究一下,完整的演示了一个跨平台控件的写法,特别是 macos 下和 linux 下的写法。
原来没注意,还以为是 lazarus 自带的控件。
本帖子属于以下条目()
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.