Skip to content
/ xcgui-2 Public
forked from twgh/xcgui

XCGUI的GO绑定,Windows GUI库,DirectUI设计思想。Golang bindings for XCGUI, Windows GUI library, DirectUI design idea.

License

Notifications You must be signed in to change notification settings

Dk2014/xcgui-2

 
 

Repository files navigation

XCGUI

version GoDoc License

项目文档   帮助文档   程序示例

介绍

English | 简体中文

DirectUI设计思想: 在窗口内没有子窗口,界面元素都是逻辑上的区域(无HWND句柄,安全,灵活), 所有UI元素都是自主开发(不受系统限制), 更加灵活的实现各种程序界面,满足不同用户的需求.

官方网站:www.xcgui.com

可视化UI设计器

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

uidesigner

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

package main

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

func main() {
	a := app.New("")
	// 添加文件搜索路径, 你运行时需要改成自己的路径,也可以使用相对路径
	a.AddFileSearchPath(`D:\GoProject\src\github.com\twgh\xcgui-example\uidesigner\res`)
	// 从zip中加载资源文件
	a.LoadResourceZip("qqmusic.zip", "resource.res", "")
	// 从zip中加载布局文件
	hWindow := a.LoadLayoutZip("qqmusic.zip", "main.xml", "", 0)
	if hWindow == 0 {
		panic("error")
	}
	// 创建窗口对象
	win := window.NewWindowByHandle(hWindow)

	// 调整布局
	win.AdjustLayout()
	// 显示窗口
	win.ShowWindow(xcc.SW_SHOW)

	a.Run()
	a.Exit()
}

获取

go get github.com/twgh/xcgui

动态链接库下载

网盘 下载地址
百度网盘 下载,提取码:wcs7
OneDrive 下载
Google Drive 下载
GIthub 下载

程序运行时需要把XCGUI.dll放到程序运行目录。

在开发时最好是放到C:\Windows\System32目录,这样就不需要频繁把dll放到不同程序的运行目录了。

简单窗口(纯代码)

SimpleWindow

package main

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

func main() {
	// 1.初始化UI库
	a := app.New("")
	// 2.创建窗口
	win := window.NewWindow(0, 0, 466, 300, "炫彩窗口", 0, xcc.Xc_Window_Style_Default)

	// 设置窗口边框大小
	win.SetBorderSize(1, 30, 1, 1)
	// 设置窗口透明类型
	win.SetTransparentType(xcc.Window_Transparent_Shadow)
	// 设置窗口阴影
	win.SetShadowInfo(10, 255, 10, false, 0)
	// 窗口置顶
	win.SetTop()
	// 窗口居中
	win.Center()
	// 创建标签_窗口标题
	lbl_Title := widget.NewShapeText(15, 15, 56, 20, "Title", win.Handle)
	lbl_Title.SetTextColor(xc.RGB(255, 255, 255), 255)

	// 创建最小化按钮
	btn_Min := widget.NewButton(396, 10, 30, 30, "-", win.Handle)
	btn_Min.SetTextColor(xc.RGB(255, 255, 255), 255)
	btn_Min.SetType(xcc.Button_Type_Min)
	btn_Min.EnableBkTransparent(true)
	// 创建结束按钮
	btn_Close := widget.NewButton(426, 10, 30, 30, "X", win.Handle)
	btn_Close.SetTextColor(xc.RGB(255, 255, 255), 255)
	btn_Close.SetType(xcc.Button_Type_Close)
	btn_Close.EnableBkTransparent(true)

	// 3.显示窗口
	win.ShowWindow(xcc.SW_SHOW)
	// 4.运行程序
	a.Run()
	// 5.释放UI库
	a.Exit()
}

常量

xcc包里都是常量,像这样使用:xcc.Xc_Window_Style_Default

需要用到xcc包常量的参数注释都是类似这样的,复制Xc_Window_Style_xcc包里搜索即可看到相关常量注释:5eX6pD.jpg

命令介绍

xc包里的函数都是xcgui.dll里原本的函数,有一千多个函数,可以直接使用,封装好的类都在其他包里。

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

封装进度

这些类都是基于xc包里的一千多个函数封装的。

中文名称 包名 类名 是否封装完毕 文档
程序 app App 文档
窗口 window Window 文档
框架窗口 window FrameWindow 文档
模态窗口 window ModalWindow 文档
形状对象 widget Shape 文档
圆形形状对象 widget ShapeEllipse 文档
形状对象GIF widget ShapeGif 文档
组框形状对象 widget ShapeGroupBox 文档
直线形状对象 widget ShapeLine 文档
形状对象图片 widget ShapePicture 文档
矩形形状对象 widget ShapeRect 文档
形状对象文本 widget ShapeText 文档
表格 widget Table 文档
按钮 widget Button 文档
下拉组合框 widget ComboBox 文档
编辑框(常规, 富文本, 聊天气泡) widget Edit 文档
代码编辑框 widget Editor 文档
基础元素 widget Element 文档
列表 widget List 文档
列表框 widget ListBox 文档
弹出菜单 widget Menu 文档
进度条 widget ProgressBar 文档
静态文本连接按钮 widget TextLink 文档
布局元素 widget LayoutEle 文档
布局框架 widget LayoutFrame 文档
列表视图 widget ListView 文档
菜单条 widget MenuBar 文档
Pane元素 widget Pane 文档
滚动条 widget ScrollBar 文档
滚动视图 widget ScrollView 文档
滑动条元素 widget SliderBar 文档
标签栏元素 widget TabBar 文档
工具条 widget ToolBar 文档
列表树元素 widget Tree 文档
日期时间 widget DateTime 文档
月历卡片 widget MonthCal 文档
数据适配器-列表视元素 adapter AdapterListView 文档
数据适配器-单列Map-列表头(listHeader) adapter AdapterMap 文档
数据适配器-XList-XListBox adapter AdapterTable 文档
数据适配器-树元素 adapter AdapterTree 文档
背景管理器 bkmanager BkManager 文档
字体 fontx FontX 文档
图片操作 imagex Image 文档
列表项模板 listitemtemplate ListItemTemplate 文档
节点 listitemtemplate Node 文档
图形绘制 drawx Draw 文档
XCGUI所有函数 xc 文档
XCGUI常量 xcc 文档
缓动 ease 文档
资源操作 res 文档

About

XCGUI的GO绑定,Windows GUI库,DirectUI设计思想。Golang bindings for XCGUI, Windows GUI library, DirectUI design idea.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%