开源 企业版 高校版 私有云 模力方舟 AI 队友
Go语言基于CEF开发的构建跨平台桌面应用框架
概览 仓库 14 Issues 3 Pull Requests 动态 成员 1
申请加入组织

您正在申请加入energye

开发者
取消
提交
Success green

申请已成功提交

请等待管理员审核,审核完成后你将收到系统通知

精选
自定义精选项目
最多可选取 6 个公开仓库
还能勾选 1
组织介绍

3.0

是Go基于 LCL & CEF & Webview(Webview2,Webkit2) 构建跨平台桌面应用的框架

中文 | English


go-version release Build Status repo Go Reference Discord contributors Energy 是 Go 使用 CEFWebkit2GtkCEF4Delphi

Webview2 — 浏览器组件,Webview2 via 特性

  • 三种渲染引擎可选:LCL 原生控件(轻量、系统风格)、Webview 系统运行时(WebView2 / WebKit2,无需额外依赖)、CEF 完整 Chromium(全量浏览器能力)。三者可混合使用或独立使用
  • 可视化设计器:Energy Designer 支持拖拽组件、配置属性和事件、一键运行预览,生成可维护的 Go 源码
  • 上百种原生控件:基于 LCL 提供 100+ 系统原生 GUI 组件,包括按钮、表格、树形视图、列表、网格、对话框、代码编辑器等
  • Go + Web 混合架构:Go 后端负责窗口管理、系统调用、文件流、安全加密等;Web 前端(HTML + CSS + JavaScript)负责界面展示,支持 Vue、React、Angular 等主流前端框架
  • IPC 双向通信:基于事件驱动的高性能 IPC,Go 与 Web 端可双向调用和传递数据,支持回调和自动类型转换
  • 本地资源加载:支持自定义协议直接读取本地文件或 Go embed 嵌入资源,无需 HTTP 服务器;也支持 HTTP 服务加载
  • 跨平台:支持 Windows(7+)、macOS(Intel / Apple Silicon)、Linux(x86 / ARM)
  • NO CGO:可选纯 Go 开发,无需 CGO 编译,降低环境配置门槛

开发环境

  • Golang >= 1.20
  • Energy 开发环境([CEF or System Runtime], libenergy runtime)
  1. 安装 Energy Designer 快速开始

    LCL 原生模式

    package main
    
    import (
    	"github.com/energye/lcl/api"
    	"github.com/energye/lcl/lcl"
    )
    
    type TMainForm struct {
    	lcl.TEngForm
    }
    
    var MainForm TMainForm
    
    func main() {
    	lcl.Init()
    	lcl.RunApp(&MainForm)
    }
    
    func (m *TMainForm) FormCreate(sender lcl.IObject) {
    	m.SetCaption("Hello Energy")
    	m.SetWidth(400)
    	m.SetHeight(300)
    	m.WorkAreaCenter()
    
    	btn := lcl.NewButton(m)
    	btn.SetParent(m)
    	btn.SetCaption("点击我")
    	btn.SetLeft(50)
    	btn.SetTop(50)
    	btn.SetOnClick(func(sender lcl.IObject) {
    		api.ShowMessage("Hello from Go!")
    	})
    }

    Webview 混合模式

    package main
    
    import (
    	"github.com/energye/energy/v3/application"
    	"github.com/energye/energy/v3/window"
    	"github.com/energye/energy/v3/wv"
    	"github.com/energye/lcl/lcl"
    	"github.com/energye/lcl/types"
    )
    
    type TForm1 struct {
    	window.TWindow
    	Webview1 wv.IWebview
    }
    
    var Form1 TForm1
    
    func (m *TForm1) FormCreate(sender lcl.IObject) {
    	m.TWindow.InternalBeforeFormCreate() // window create before call
    	m.SetCaption("Hello Energy")
    	m.SetWidth(800)
    	m.SetHeight(600)
    
    	m.Webview1 = wv.NewWebview(m)
    	m.Webview1.SetAlign(types.AlClient)
    	m.Webview1.SetParent(m)
    
    	m.TWindow.FormCreate(sender) // window widget create after call
    
    	m.Webview1.SetWindow(m)
    }
    
    func main() {
    	wvApp := wv.Init()
    	wvApp.SetOptions(application.Options{
    		DefaultURL: "https://energye.github.io",
    	})
    	wv.Run(&Form1)
    }

    使用 Energy Designer

    1. 启动 NO CGO

      可选纯 Go 开发,无需 CGO 编译

      文档

      • Go Reference — API 文档
      • 系统支持

        Windows MacOS Linux

        32位 64位 测试系统版本
        Windows Windows Windows 7、10、11
        MacOSX MacOSX MacOSX MacOSX Intel x86
        MacOS M1/M2 MacOS MacOS MacOS Apple Silicon
        Linux Linux Linux Deepin20.8、Ubuntu18.04、LinuxMint21
        Linux ARM Linux ARM Linux ARM Kylin-V10-SP1-2107

        相关项目


        如果你觉得此项目对你有帮助,请点亮 Star!


        ENERGY QQ 交流群 & 微信

        QQ交流群: 541258627 微信: sniawmdf


        项目截图

        开源协议

        贡献者

        仓库
        0
        PR
373
Star
70
Fork
成员(1)
点此查找更多帮助

搜索帮助

回到顶部

AltStyle によって変換されたページ (->オリジナル) /