xcgui

Из публичных источников

Красочная библиотека интерфейсов. Библиотека GUI для Go. Привязки Golang для XCGUI, библиотеки GUI для Windows, идея дизайна DirectUI.

Машинный перевод · Показать оригинал

炫彩界面库. Go GUI library. Golang bindings for XCGUI, Windows GUI library, DirectUI design idea.

ПриложениеКатегория: Десктопные приложения · РазработкаOpen sourceданные проверены 15 окт. 2026 г.

Обзор

  • desktop-app
  • desktop-application
  • direct2d
  • directui
  • go
  • go-binding
  • go-gui
  • golang
  • golang-bindings
  • golang-tool

Установка

Команды только показываются, маркетплейс их не выполняет. Сверяйтесь с официальной документацией.
  • Официальный сайтИз публичных источниковиз метаданных каталога
    mcn1fno5w69l.feishu.cn/wiki/JDEGwox8KiJmrBk0SFRcXVAbnOe ↗
  • Сборка из исходниковИз публичных источниковиз метаданных каталога

    Сборка из исходников: проверенного рецепта сборки нет — следуйте инструкциям репозитория.

    github.com/twgh/xcgui ↗

Совместимость

«Неизвестно» значит, что доказательств не найдено, а не что продукт несовместим.
ПлатформаСтатусАрхитектураДоказательствоУверенность
WindowsНеизвестно———
macOSНеизвестно———
LinuxНеизвестно———

Релизы

проверено 29 окт. 2026 г.
v1.4.3Последний19 окт. 2026 г.Официальный источник ↗

Файлы версии 1.4.3

К релизу не приложены файлы.

История релизов

Профиль качества

алгоритм quality-v1.0 · оценено 15 окт. 2026 г.
Оценка качества84
Оценка риска0
Уверенность 1.00
Оценка качества и оценка риска — разные показатели. Высокое качество не гарантирует безопасность.

Составляющие оценки

Поддержка · 2020
last activity 0 days ago
Документация · 1515
README 16741 chars, description present
Готовность к использованию · 156
install instructions: no; releases: yes
Метаданные · 1010
4/4 of description, homepage, license, topics
Релизы · 1010
10 release(s), latest 97 days ago
Точность категории · 107
classifier confidence 0.65
Популярность · 107
616 stars (log-dampened, 10k = max)
Ясность лицензии · 55
SPDX MIT
Сообщество · 55
issues enabled, 63 forks

Лицензия

MIT
Лицензия известнапо данным хостинга репозитория

Это статус политики каталога, а не юридическое заключение.

Источники

github.com/twgh/xcguiОсновной★ 616 звёздактивность 15 окт. 2026 г.Основной репозиторий · Уверенность 1.00

Отзывы

Войдите, чтобы написать отзыв

Отзывов пока нет.

Альтернативы

easy-stockПохожий
Анализ рынка акций Китая (A-share) и интеллектуальный агент для инвестиционных исследований на основе ИИ: анализ акций, анализ количественной торговли и настольное рабочее место для послерыночного обзора — easy stockДесктопные приложения
zen-desktopПохожий
Общесистемный блокировщик рекламы и защитник конфиденциальности для Windows, macOS и Linux.MIT · Десктопные приложения
nodezatorПохожий
Универсальный редактор узлов на PythonUnlicense · Десктопные приложения
skillshareПохожий
📚 Синхронизация навыков, агентов, MCP и плагинов для всех CLI-инструментов ИИ одной командой и упрощение совместной работы в команде.MIT · Десктопные приложения
GoNaviПохожий
Высокопроизводительный клиент для баз данных с поддержкой нескольких источников данных — около 30 МБ, готов к ИИ и MCP, без избыточности Electron. | 高性能多数据源数据库客户端:约 30MB,AI 与 MCP 就绪,告别 Electron 膨胀。Apache-2.0 · Десктопные приложения
officedexПохожий
OfficeDex — первая платформа VibeOfficing с нативным ИИ для документов, презентаций и таблицGPL-3.0 · Десктопные приложения

README

Из twgh/xcgui · лицензия MIT · загружено 29 окт. 2026 г.

介绍

English | 简体中文

  • 本库封装自炫彩界面库,功能丰富(近 2000 个 API 接口),简单易用,轻量级,高度 DIY 自定义,支持一键换肤。
  • 炫彩界面库是由 C/C++ 语言开发:软件运行效率高,不需要第三方库的支持,不依赖 MFC,ATL,WINDOWS 标准控件等。
  • DirectUI 设计思想:在窗口内没有子窗口,界面元素都是逻辑上的区域(无 HWND 句柄,安全,灵活),所有 UI 元素都是自主开发(不受系统限制),更加灵活的实现各种程序界面,满足不同用户的需求。
  • 拥有免费的 UI 设计器:快速开发工具,所见即所得,高度自定义系统(DIY),让 UI 开发变的更加简单。
  • 支持 Direct2D,硬件加速,能更大程度的发挥硬件特性,创建高性能,高质量的 2D 图形。
  • 支持 WebView2,可使用前端技术栈开发界面。
  • 推荐使用 go-xcgui-dev 技能可避免 AI 产生幻觉。
  • 使用指南 里有入门教程和常见问题,可以看一下,少走弯路。
  • 其它相关项目:xcgui-example,xc,xui
  • 官方 QQ 群 (能回答问题的人多):2283812,只聊 Go 语言版的 QQ 群:793788011

获取

go get -u github.com/twgh/xcgui

推荐使用 XUI 进行快速开发

XUI — shadcn 风格的 xcgui 自绘组件

直接运行示例(想先看效果)

不想先建项目时, 可以直接运行仓库里的 demo (全部组件 + 亮/暗主题切换):

go run github.com/twgh/xui/demo@latest
一条命令初始化项目
go run github.com/twgh/xui/cmd/xui@latest init -n myapp

[xui]

可视化 UI 设计器

使用 UI 设计器可以快速设计界面,节省大量代码。

[uidesigner]

设计器使用例子,只有这么多代码:

package main

import (
	_ "embed"
	"github.com/twgh/xcgui/app"
	"github.com/twgh/xcgui/widget"
	"github.com/twgh/xcgui/window"
)

//go:embed res/qqmusic.zip
var qqmusic []byte

func main() {
    app.Init()
	a := app.New(true)
	a.EnableAutoDPI(true).EnableDPI(true)
	// 从内存 zip 中加载资源文件
	a.LoadResourceZipMem(qqmusic, "resource.res", "")
	// 从内存 zip 中加载布局文件, 创建窗口对象
	w := window.NewByLayoutZipMem(qqmusic, "main.xml", "", 0, 0)
    
	// songTitle 是在 main.xml 中给歌曲名(shapeText 组件)设置的 name 属性的值.
	song := widget.NewShapeTextByName("songTitle")
	println(song.GetText()) // 输出: 两只老虎爱跳舞
    
	// 调整布局
	w.AdjustLayout()
	// 显示窗口
	w.Show(true)
	a.Run()
	a.Exit()
}

相关资源下载

百度网盘,蓝奏云

网盘内包含 界面设计器、 chm帮助文档

简单窗口(纯代码)

[SimpleWindow]

package main

import (
	"github.com/twgh/xcgui/app"
	"github.com/twgh/xcgui/imagex"
	"github.com/twgh/xcgui/widget"
	"github.com/twgh/xcgui/window"
	"github.com/twgh/xcgui/xcc"
)

func main() {
	// 1.初始化UI库
    app.Init()
	a := app.New(true)
	// 启用自适应 DPI
	a.EnableAutoDPI(true).EnableDPI(true)
	// 2.创建窗口
	w := window.New(0, 0, 430, 300, "xcgui window", 0, xcc.Window_Style_Default|xcc.Window_Style_Drag_Window)

	// 设置窗口边框大小
	w.SetBorderSize(0, 30, 0, 0)
	// 设置全局窗口图标
	a.SetWindowIcon(imagex.NewBySvgString(svgIcon).Handle)
	// 设置窗口透明类型
	w.SetTransparentType(xcc.Window_Transparent_Shadow)
	// 设置窗口阴影
	w.SetShadowInfo(8, 255, 10, false, 0)

	// 创建按钮
	btn := widget.NewButton(165, 135, 100, 30, "Button", w.Handle)
	// 添加按钮点击事件
	btn.AddEvent_BnClick(func(hEle int, pbHandled *bool) int {
		w.MessageBox("提示", btn.GetText(), xcc.MessageBox_Flag_Ok|xcc.MessageBox_Flag_Icon_Info, xcc.Window_Style_Modal)
		return 0
	})

	// 3.显示窗口
	w.Show(true)
	// 4.运行程序
	a.Run()
	// 5.释放UI库
	a.Exit()
}

const svgIcon = `<svg t="1669088647057" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5490" width="22" height="22"><path d="M517.12 512.8704m-432.3328 0a432.3328 432.3328 0 1 0 864.6656 0 432.3328 432.3328 0 1 0-864.6656 0Z" fill="#51C5FF" p-id="5491"></path><path d="M292.1472 418.7136c-85.0432 0-160.4096 41.3696-207.104 105.0624 4.5568 182.7328 122.368 337.3056 285.952 396.032 103.2192-33.28 177.92-130.048 177.92-244.3776 0-141.7216-114.944-256.7168-256.768-256.7168z" fill="#7BE0FF" p-id="5492"></path><path d="M800.2048 571.6992l-101.888-58.8288 101.888-58.8288c16.896-9.728 22.6816-31.3344 12.9536-48.2304l-55.296-95.744c-9.728-16.896-31.3344-22.6816-48.2304-12.9536l-101.888 58.8288V238.336c0-19.5072-15.8208-35.328-35.328-35.328H461.824c-19.5072 0-35.328 15.8208-35.328 35.328v117.6064L324.608 297.1136c-16.896-9.728-38.5024-3.9424-48.2304 12.9536l-55.296 95.744c-9.728 16.896-3.9424 38.5024 12.9536 48.2304l101.888 58.8288-101.888 58.8288c-16.896 9.728-22.6816 31.3344-12.9536 48.2304l55.296 95.744c9.728 16.896 31.3344 22.6816 48.2304 12.9536l101.888-58.8288v117.6064c0 19.5072 15.8208 35.328 35.328 35.328h110.592c19.5072 0 35.328-15.8208 35.328-35.328v-117.6064l101.888 58.8288c16.896 9.728 38.5024 3.9424 48.2304-12.9536l55.296-95.744c9.728-16.896 3.9424-38.5024-12.9536-48.2304z" fill="#CAF8FF" p-id="5493"></path><path d="M517.12 512.8704m-234.24 0a234.24 234.24 0 1 0 468.48 0 234.24 234.24 0 1 0-468.48 0Z" fill="#FFFFFF" p-id="5494"></path><path d="M517.12 512.8704m-103.5776 0a103.5776 103.5776 0 1 0 207.1552 0 103.5776 103.5776 0 1 0-207.1552 0Z" fill="#51C5FF" p-id="5495"></path></svg>`

常量

xcc 包里都是常量,需要用到 xcc 包常量的参数注释都是类似图片这样的,复制 Window_Transparent_ 到 xcc包 里搜索即可看到相关常量及注释:

[注释]

命令介绍

xc 包里包含 xcgui.dll 里所有的 API,有近 2000 个函数,不习惯使用类的可以直接使用原版函数,封装好的类都在其他包里。

在某些情况下,把 xc 包里的原生函数与封装好的类混合起来使用会更加方便。

炫彩所有的结构体也都在 xc 包里。

建议使用 Goland 进行开发,以获得最好的开发体验。

事件

炫彩的一个事件类型可以注册多个回调处理函数,执行顺序为先执行最后注册的回调函数,最后执行第一个注册的回调函数,当你想拦截当前事件或不想向后传递,只需要在回调函数中设置参数 *pbHandled=true 即可。

炫彩的全部事件都已经在各种类里定义好了,有两种形式,分别以两种格式开头: AddEvent 或 Event ,一般使用 AddEvent 类型的函数即可。

区别是:由于使用的是 syscall.NewCallback 创建的事件回调函数,该方法限制只能创建 2000 个左右的回调函数,超过就会 panic。当使用 Event 类型的函数来注册事件且回调函数是匿名函数时,每次都会创建 1 个新的回调函数,如果不加以控制,就可能会超过 2000 个。而 AddEvent 类型的函数会复用创建好的回调函数,可以任意使用匿名函数作为事件回调函数,无需担心超过 2000 个的限制。

关于版本号

以 1.4.0 为例,1 仅代表本库是正式版,4 代表是 XCGUI 4.0 大版本,最后的 0 代表是基于 4.0 封装的第 1 个版本,如果基于 4.0 还有更新,那么会累加。

JetBrains 开源证书支持

xcgui 项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 free JetBrains Open Source license(s) 正版免费授权,在此表达我的谢意。

模块继承关系

xcgui模块关系图

封装进度

和炫彩相关的类都是基于 xc 包里的近 2000 个函数封装的。

中文名称包名类名是否封装完毕文档
程序(炫彩全局API)appApp√文档
窗口windowWindow√文档
框架窗口windowFrameWindow√文档
模态窗口windowModalWindow√文档
浮动窗口windowFloatWindow√文档
托盘图标windowTrayIcon√文档
WebView 环境edgeEdge√文档
WebViewedgeWebView√文档
形状对象widgetShape√文档
圆形形状对象widgetShapeEllipse√文档
形状对象GIFwidgetShapeGif√文档
组框形状对象widgetShapeGroupBox√文档
直线形状对象widgetShapeLine√文档
形状对象图片widgetShapePicture√文档
矩形形状对象widgetShapeRect√文档
形状对象文本widgetShapeText√文档
表格widgetTable√文档
按钮widgetButton√文档
下拉组合框widgetComboBox√文档
编辑框(常规, 富文本, 聊天气泡)widgetEdit√文档
代码编辑框widgetEditor√文档
基础元素widgetElement√文档
列表widgetList√文档
列表框widgetListBox√文档
弹出菜单widgetMenu√文档
进度条widgetProgressBar√文档
静态文本链接按钮widgetTextLink√文档
布局元素widgetLayoutEle√文档
布局框架widgetLayoutFrame√文档
列表视图widgetListView√文档
菜单条widgetMenuBar√文档
Pane元素widgetPane√文档
滚动条widgetScrollBar√文档
滚动视图widgetScrollView√文档
滑动条widgetSliderBar√文档
标签栏widgetTabBar√文档
工具条widgetToolBar√文档
树widgetTree√文档
日期时间widgetDateTime√文档
月历卡片widgetMonthCal√文档
Gif 播放器widgetGifPlayer√文档
数据适配器-列表视adapterAdapterListView√文档
数据适配器-单列Map-列表头(listHeader)adapterAdapterMap√文档
数据适配器-XList-XListBoxadapterAdapterTable√文档
数据适配器-树adapterAdapterTree√文档
背景管理器bkmanagerBkManager√文档
背景对象bkobjBkObj√文档
字体fontFont√文档
图片操作imagexImage√文档
图片源imagexImageSrc√文档
SVG矢量图形svgSvg√文档
列表项模板tmplListItemTemplate√文档
节点tmplNode√文档
图形绘制drawxDraw√文档
动画序列aniAnima√文档
动画组aniAnimaGroup√文档
动画项aniAnimaItem√文档
动画旋转项aniAnimaRotate√文档
动画缩放项aniAnimaScale√文档
含有XCGUI所有API和结构体xc√文档
XCGUI常量xcc√文档
缓动ease√文档
资源操作res√文档
Windows系统apiwapi持续更新文档
调用wapi封装了对窗口的操作wapi/wnd持续更新文档
调用wapi封装了一些常用函数wapi/wutil持续更新文档
Открыть репозиторий ↗