Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/twgh/xc-elementui

使用 xcgui 仿 Elementui,元素样式具有一致性,快速开发界面。
https://github.com/twgh/xc-elementui

desktop-app direct2d directui elementui go go-gui golang golang-tool gui gui-application gui-framework gui-library gui-toolkit windows windows-app windows-desktop windows-gui xcgui

Last synced: 2 months ago
JSON representation

使用 xcgui 仿 Elementui,元素样式具有一致性,快速开发界面。

Awesome Lists containing this project

README

        

xc-elementui



xcgui
golang
GoDoc
License



程序示例  
项目文档  

## 介绍

- 使用 [xcgui](https://github.com/twgh/xcgui) 仿 [Elementui](https://element.eleme.cn/#/zh-CN/component/installation),元素样式具有一致性,快速开发界面。
- 内置 2000+ [Font Awesome](https://fa6.dashgame.com/) 免费图标,风格一致,开箱即用。

## 获取

```bash
go get -u github.com/twgh/xc-elementui
```

## 动态链接库下载

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

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

#### 文件直链

| 64位 | [点击下载](https://pkggo-generic.pkg.coding.net/xcgui/file/xcgui.dll?version=latest) |
| ---- | ------------------------------------------------------------ |
| 32位 | [点击下载](https://pkggo-generic.pkg.coding.net/xcgui/file/xcgui-32.dll?version=latest) |

## 按钮例子

[![按钮例子](https://gitee.com/twgh/xc-elementui/raw/main/example/AllButton/1.png)](https://github.com/twgh/xc-elementui/tree/main/example/AllButton)

## 简单用法

```go
package main

import (
"github.com/twgh/xc-elementui/eui"
"github.com/twgh/xcgui/app"
"github.com/twgh/xcgui/font"
"github.com/twgh/xcgui/imagex"
"github.com/twgh/xcgui/svg"
"github.com/twgh/xcgui/window"
"github.com/twgh/xcgui/xc"
"github.com/twgh/xcgui/xcc"
"time"
)

var (
a *app.App
w *window.Window
e *eui.Elementui
)

func main() {
a = app.New(true)
a.EnableAutoDPI(true).EnableDPI(true)
// 设置默认字体
a.SetDefaultFont(font.NewEX("微软雅黑", 10, xcc.FontStyle_Regular).Handle)
// 设置默认窗口图标
a.SetWindowIcon(imagex.NewBySvgStringW(svg_element).Handle)

// 创建窗口
w = window.New(0, 0, 500, 400, "xc-elementui 简单例子", 0, xcc.Window_Style_Default|xcc.Window_Style_Drag_Window)
// 设置窗口边框大小
w.SetBorderSize(0, 32, 0, 0)
// 设置窗口阴影, 圆角
w.SetTransparentType(xcc.Window_Transparent_Shadow).SetShadowInfo(8, 255, 10, false, 0).SetTransparentAlpha(255)
// 窗口启用布局, 水平垂直居中, 自动换行
w.EnableLayout(true).SetSpace(10).SetSpaceRow(10).SetAlignH(xcc.Layout_Align_Center).SetAlignV(xcc.Layout_Align_Center).EnableAutoWrap(true)

// 创建Elementui对象
e = eui.NewElementui(12, w.GetDPI())

// 默认按钮
e.CreateButton(0, 0, 0, 0, "默认按钮", w.Handle)
// 主要按钮
e.CreateButton(0, 0, 0, 0, "主要按钮", w.Handle, eui.ButtonOption{Style: eui.ButtonStyle_Primary})
// 图标+文字按钮 成功按钮
e.CreateButton(0, 0, 0, 0, "图标文字", w.Handle, eui.ButtonOption{IconName: "fa-house-medical-flag", Style: eui.ButtonStyle_Success})
// 图标+文字按钮 信息按钮 朴素按钮
e.CreateButton(0, 0, 0, 0, "朴素按钮", w.Handle, eui.ButtonOption{IconName: "fa-jet-fighter", Style: eui.ButtonStyle_Info, IsPlain: true})
// 图标+文字按钮 禁用状态 警告按钮
e.CreateButton(0, 0, 0, 0, "禁用状态", w.Handle, eui.ButtonOption{IconName: "fa-wpexplorer", Style: eui.ButtonStyle_Warning}).Enable(false)
// 图标+文字 圆角按钮 警告按钮
e.CreateButton(0, 0, 0, 0, "圆角按钮", w.Handle, eui.ButtonOption{IconName: "fa-circle-radiation", IsRound: true, Style: eui.ButtonStyle_Warning})
// 图标按钮 危险按钮
e.CreateButton(0, 0, 56, 40, "", w.Handle, eui.ButtonOption{IconName: "fa-volcano", Style: eui.ButtonStyle_Danger})
// 圆形图标按钮 主要按钮
e.CreateButton(0, 0, 40, 40, "", w.Handle, eui.ButtonOption{IconName: "fa-text-height", IsCircle: true, Style: eui.ButtonStyle_Primary})

// 图标按钮 默认按钮 自定义svg图标
svgElement := svg.NewByStringW(svg_element).SetSize(20, 20)
btn0 := e.CreateButton(0, 0, 0, 0, "点我加载", w.Handle, eui.ButtonOption{HSvg: svgElement.Handle, Style: eui.ButtonStyle_Primary})
btn0.Event_BnClick1(func(hEle int, pbHandled *bool) int {
btn0.SetLoading(true, 0, "")
go func() {
time.Sleep(2 * time.Second)
/*
在这里做一些加载数据的操作, 比如读取数据库数据
*/
xc.XC_CallUT(func() {
/*
拿到数据库数据后, 如果要赋予ui元素数据, 要在这里操作ui元素
*/
btn0.SetLoading(false, 0, "")
})
}()
return 0
})

w.Show(true)
a.Run()
a.Exit()
}

const svg_element = ``
```

## 其它组件预期效果

![预期效果](https://gitee.com/twgh/image/raw/master/xc-elementui/yuqi.jpg)

## 开发进度

- [x] 按钮
- [ ] 输入框
- [ ] 单选框
- [ ] 多选框
- [ ] 开关按钮
- [ ] 文字链接
- [ ] 选择器
- [ ] 时间选择器
- [ ] 日期选择器
- [ ] 滑块
- [ ] 计数器
- [ ] 颜色选择器
- [ ] 标签
- [ ] 进度条
- [ ] 导航菜单
- [ ] 标签页
- [ ] 步骤条
- [ ] 文字提示
- [ ] 弹出框
- [ ] 卡片
- [ ] 折叠面板
- [ ] ...