eui

package
v0.0.0-...-eaa2103 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package eui 封装了 Elementui, Button, Edit.

Index

Constants

View Source
const (
	ButtonSize_Default = iota + 1 // 98x40
	ButtonSize_Mdeium             // 98x36
	ButtonSize_Small              // 80x32
	ButtonSize_Mini               // 80x28
)
View Source
const (
	ButtonStyle_Default = iota
	ButtonStyle_Primary
	ButtonStyle_Success
	ButtonStyle_Info
	ButtonStyle_Warning
	ButtonStyle_Danger
	ButtonStyle_Text
)
View Source
const (
	EditSize_Default = iota + 1 // 180x40
	EditSize_Mdeium             // 180x36
	EditSize_Small              // 180x32
	EditSize_Mini               // 180x28
)

Variables

View Source
var ButtonBgColors = map[int]string{
	ButtonStyle_Default: JoinColorString(xc.RGBA(255, 255, 255, 255), xc.RGBA(236, 245, 255, 255), xc.RGBA(236, 245, 255, 255), 0, xc.RGBA(255, 255, 255, 255)),
	ButtonStyle_Primary: JoinColorString(xc.RGBA(64, 158, 255, 255), xc.RGBA(102, 177, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(160, 207, 255, 255)),
	ButtonStyle_Success: JoinColorString(xc.RGBA(103, 194, 58, 255), xc.RGBA(133, 206, 97, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(179, 225, 157, 255)),
	ButtonStyle_Info:    JoinColorString(xc.RGBA(144, 147, 153, 255), xc.RGBA(166, 169, 173, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(200, 201, 204, 255)),
	ButtonStyle_Warning: JoinColorString(xc.RGBA(230, 162, 60, 255), xc.RGBA(235, 181, 99, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(243, 209, 158, 255)),
	ButtonStyle_Danger:  JoinColorString(xc.RGBA(245, 108, 108, 255), xc.RGBA(247, 137, 137, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(250, 182, 182, 255)),
}

ButtonBgColors 存放按钮不同样式的背景颜色字符串, 不包含朴素按钮的.

  • 顺序: Leave, Stay, Down, Check, Disable
View Source
var ButtonBgColors_Plain = map[int]string{
	ButtonStyle_Primary: JoinColorString(xc.RGBA(236, 245, 255, 255), xc.RGBA(64, 158, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(236, 245, 255, 255)),
	ButtonStyle_Success: JoinColorString(xc.RGBA(240, 249, 235, 255), xc.RGBA(103, 194, 58, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(240, 249, 235, 255)),
	ButtonStyle_Info:    JoinColorString(xc.RGBA(244, 244, 245, 255), xc.RGBA(144, 147, 153, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(244, 244, 245, 255)),
	ButtonStyle_Warning: JoinColorString(xc.RGBA(253, 246, 236, 255), xc.RGBA(230, 162, 60, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(253, 246, 236, 255)),
	ButtonStyle_Danger:  JoinColorString(xc.RGBA(254, 240, 240, 255), xc.RGBA(245, 108, 108, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(254, 240, 240, 255)),
}

ButtonBgColors_Plain 存放朴素按钮不同样式的背景颜色字符串, 不包含 default 样式的

  • 顺序: Leave, Stay, Down, Check, Disable
View Source
var ButtonBorderColors_Plain = map[int]string{
	ButtonStyle_Primary: JoinColorString(xc.RGBA(179, 216, 255, 255), xc.RGBA(64, 158, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(217, 236, 255, 255)),
	ButtonStyle_Success: JoinColorString(xc.RGBA(194, 231, 176, 255), xc.RGBA(103, 194, 58, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(225, 243, 216, 255)),
	ButtonStyle_Info:    JoinColorString(xc.RGBA(211, 212, 214, 255), xc.RGBA(144, 147, 153, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(233, 233, 235, 255)),
	ButtonStyle_Warning: JoinColorString(xc.RGBA(245, 218, 177, 255), xc.RGBA(230, 162, 60, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(250, 236, 216, 255)),
	ButtonStyle_Danger:  JoinColorString(xc.RGBA(251, 196, 196, 255), xc.RGBA(245, 108, 108, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(253, 226, 226, 255)),
}

ButtonBorderColors_Plain 存放朴素按钮不同样式的边框颜色字符串, 不包含 default 样式的

  • 顺序: Leave, Stay, Down, Check, Disable
View Source
var ButtonTextColors_Plain = map[int]string{
	ButtonStyle_Primary: JoinColorString(xc.RGBA(64, 158, 255, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(140, 197, 255, 255)),
	ButtonStyle_Success: JoinColorString(xc.RGBA(103, 194, 58, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(164, 218, 137, 255)),
	ButtonStyle_Info:    JoinColorString(xc.RGBA(144, 147, 153, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(188, 190, 194, 255)),
	ButtonStyle_Warning: JoinColorString(xc.RGBA(230, 162, 60, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(240, 199, 138, 255)),
	ButtonStyle_Danger:  JoinColorString(xc.RGBA(245, 108, 108, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(249, 167, 167, 255)),
}

ButtonTextColors_Plain 存放朴素按钮不同样式的字体颜色字符串, 不包含 default 样式的

  • 顺序: Leave, Stay, Down, Check, Disable

Functions

func JoinColorString

func JoinColorString(colors ...uint32) string

JoinColorString 将颜色数组拼接成字符串, 以英文逗号分割.

func XChar

func XChar(UnicodePoint int32) string

XChar 传入 Unicode 码点转换到字符. 如 20013 是'中'.

func XCharHex

func XCharHex(UnicodePointHex string) string

XCharHex 传入 Unicode 码点十六进制文本转换到字符. 如 4E2D 是'中'.

Types

type Button

type Button struct {
	widget.Button
	// contains filtered or unexported fields
}

Button 是 Elementui 风格的按钮, 继承 widget.Button.

func (*Button) ClearIcon

func (o *Button) ClearIcon() *objBase

ClearIcon 清除掉已设置的 Font Awesome 图标, hsvg 和 himage.

func (*Button) EnableCircle

func (b *Button) EnableCircle(isCircle bool) *Button

EnableCircle 设置按钮是否圆形.

isCircle: 是否圆形按钮.

func (*Button) EnablePlain

func (b *Button) EnablePlain(isPlain bool) *Button

EnablePlain 设置按钮是否朴素.

isPlain: 是否朴素按钮.

func (*Button) GetHImage

func (o *Button) GetHImage() int

GetHImage 获取已设置的炫彩图片句柄.

func (*Button) GetHSvg

func (o *Button) GetHSvg() int

GetHSvg 获取已设置的炫彩 svg 句柄.

func (*Button) GetIconName

func (o *Button) GetIconName() string

GetIconName 获取已设置的 Font Awesome 图标名.

func (*Button) GetRound

func (b *Button) GetRound() int32

GetRound 获取按钮的圆角大小.

func (*Button) IsCircle

func (b *Button) IsCircle() bool

IsCircle 是否为圆形按钮.

func (*Button) IsPlain

func (b *Button) IsPlain() bool

IsPlain 是否为朴素按钮.

func (*Button) SetHImage

func (o *Button) SetHImage(hImage int) *objBase

SetHImage 设置炫彩图片句柄.

hImage: 炫彩图片句柄.

func (*Button) SetHSvg

func (o *Button) SetHSvg(hSvg int) *objBase

SetHSvg 设置炫彩 svg 句柄.

hSvg: 炫彩 svg 句柄.

func (*Button) SetIconHex

func (o *Button) SetIconHex(iconHex string) *objBase

SetIconHex 设置 Font Awesome 图标对应的 Unicode 码点十六进制文本.

iconHex: Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.

func (*Button) SetIconName

func (o *Button) SetIconName(iconName string) *objBase

SetIconName 设置 Font Wesome 图标名.

iconName: Font Awesome 图标名.

  • 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
  • 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0

func (*Button) SetIconUnicode

func (o *Button) SetIconUnicode(iconUnicode int32) *objBase

SetIconUnicode 设置 Font Awesome 图标对应的 Unicode 码点十进制数字.

iconUnicode: Font Awesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.

func (*Button) SetLoading

func (b *Button) SetLoading(on bool, svgSize int32, text string) *Button

SetLoading 启用或关闭加载中状态, 开启后会显示加载中图标, 同时按钮会禁止点击, 内部已自动重绘按钮.

on: 是否启用.

svgSize: 图标大小, 小于 1 时默认为 20.

text: 同时更改加载中按钮的文本, on 参数为 true 时生效,加载状态结束后自动恢复原文本, 如果为空则不会更改按钮文本.

func (*Button) SetRound

func (b *Button) SetRound(round int32) *Button

SetRound 设置按钮的圆角大小, 没有设置时的默认圆角是 4.

round: 圆角大小, 小于 1 时为直角.

func (*Button) SetSizeEle

func (b *Button) SetSizeEle(size int) *Button

SetSizeEle 设置 Button 的大小. 只能使用预设好的常量.

size: 预设好的大小, 可使用常量: ButtonSize_.

  • 1 = default (98x40)
  • 2 = medium (98x36)
  • 3 = small (80x32)
  • 4 = mini (80x28)

func (*Button) SetStyle

func (b *Button) SetStyle(style int) *Button

SetStyle 设置按钮样式.

style: 按钮样式, 默认为 ButtonStyle_Default, 可使用常量: ButtonStyle_.

  • 0 = default
  • 1 = primary
  • 2 = success
  • 3 = info
  • 4 = warning
  • 5 = danger
  • 6 = text

type ButtonOption

type ButtonOption struct {
	// 自定义炫彩 svg 句柄.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	HSvg int
	// 自定义炫彩图片句柄.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	HImage int

	// Font Wesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	IconUnicode int32
	// Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	IconHex string
	// Font Wesome 图标名.
	//  - 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
	//  - 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为6.6.0
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	Icon string

	X, Y, Width, Height int32

	// 按钮尺寸, 默认为 ButtonSize_Default, 可使用常量: ButtonSize_
	//  - 使用预设的尺寸效果会比较好.
	//  - 如果 Width 或 Height 字段 > 0 那么本字段就无效.
	//  - 1 = default (98x40)
	//  - 2 = medium (98x36)
	//  - 3 = small (80x32)
	//  - 4 = mini (80x28)
	Size int

	// 按钮样式, 默认为 ButtonStyle_Default, 可使用常量: ButtonStyle_
	//  - 0 = default
	//  - 1 = primary
	//  - 2 = success
	//  - 3 = info
	//  - 4 = warning
	//  - 5 = danger
	//  - 6 = text
	Style int

	// 是否为朴素按钮, 默认为 false.
	//  - 当 Style 字段 = ButtonStyle_Text 时本字段无效.
	IsPlain bool
	// 是否为圆形按钮, 默认为 false.
	//  - 当 Style 字段 = ButtonStyle_Text 时本字段无效.
	IsCircle bool
}

ButtonOption 按钮选项.

type Edit

type Edit struct {
	widget.Edit
	// contains filtered or unexported fields
}

Edit 是 Elementui 风格的编辑框, 继承 widget.Edit.

func (*Edit) ClearIcon

func (o *Edit) ClearIcon() *objBase

ClearIcon 清除掉已设置的 Font Awesome 图标, hsvg 和 himage.

func (*Edit) EnableAutoColor

func (e *Edit) EnableAutoColor(isAutoColor bool) *Edit

EnableAutoColor 设置编辑框的图标颜色是否根据焦点颜色自动改变.

isAutoColor: 图标颜色是否根据焦点颜色自动改变.

func (*Edit) EnableRight

func (e *Edit) EnableRight(isRight bool) *Edit

EnableRight 设置编辑框的图标是否在右边.

isRight: 图标是否在右边.

func (*Edit) GetHImage

func (o *Edit) GetHImage() int

GetHImage 获取已设置的炫彩图片句柄.

func (*Edit) GetHSvg

func (o *Edit) GetHSvg() int

GetHSvg 获取已设置的炫彩 svg 句柄.

func (*Edit) GetIconName

func (o *Edit) GetIconName() string

GetIconName 获取已设置的 Font Awesome 图标名.

func (*Edit) GetRound

func (e *Edit) GetRound() int32

GetRound 获取编辑框的圆角大小.

func (*Edit) IsAutoColor

func (e *Edit) IsAutoColor() bool

IsAutoColor 判断编辑框的图标颜色是否根据焦点颜色自动改变.

func (*Edit) IsRight

func (e *Edit) IsRight() bool

IsRight 判断编辑框的图标是否在右边.

func (*Edit) SetHImage

func (o *Edit) SetHImage(hImage int) *objBase

SetHImage 设置炫彩图片句柄.

hImage: 炫彩图片句柄.

func (*Edit) SetHSvg

func (o *Edit) SetHSvg(hSvg int) *objBase

SetHSvg 设置炫彩 svg 句柄.

hSvg: 炫彩 svg 句柄.

func (*Edit) SetIconHex

func (o *Edit) SetIconHex(iconHex string) *objBase

SetIconHex 设置 Font Awesome 图标对应的 Unicode 码点十六进制文本.

iconHex: Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.

func (*Edit) SetIconName

func (o *Edit) SetIconName(iconName string) *objBase

SetIconName 设置 Font Wesome 图标名.

iconName: Font Awesome 图标名.

  • 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
  • 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0

func (*Edit) SetIconUnicode

func (o *Edit) SetIconUnicode(iconUnicode int32) *objBase

SetIconUnicode 设置 Font Awesome 图标对应的 Unicode 码点十进制数字.

iconUnicode: Font Awesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.

func (*Edit) SetRound

func (e *Edit) SetRound(round int32) *Edit

SetRound 设置编辑框的圆角大小, 没有设置时的默认圆角是 4.

round: 圆角大小, 小于 1 时为直角.

func (*Edit) SetSizeEle

func (e *Edit) SetSizeEle(size int) *Edit

SetSizeEle 设置编辑框的大小. 只能使用预设好的常量.

size: 预设好的大小, 可使用常量: EditSize_.

  • 1 = default (180x40)
  • 2 = medium (180x36)
  • 3 = small (180x32)
  • 4 = mini (180x28)

type EditOption

type EditOption struct {
	// 自定义炫彩 svg 句柄.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	HSvg int
	// 自定义炫彩图片句柄.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	HImage int

	// Font Wesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	IconUnicode int32
	// Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	IconHex string
	// Font Wesome 图标名.
	//  - 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
	//  - 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0
	// 	- 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
	Icon string

	// 当无内容时显示的文本.
	DefaultText string

	X, Y, Width, Height int32

	// 编辑框尺寸, 默认为 EditSize_Default, 可使用常量: EditSize_
	//  - 使用预设的尺寸效果会比较好.
	//  - 如果 Width 或 Height 字段 > 0 那么本字段就无效.
	//  - 1 = default (180x40)
	//  - 2 = medium (180x36)
	//  - 3 = small (180x32)
	//  - 4 = mini (180x28)
	Size int

	// 图标是否在右边.
	IsRight bool
	// 图标颜色是否根据焦点颜色自动改变.
	//  - 如果你使用的是 HImage, 则此参数无效.
	IsAutoColor bool
}

EditOption 编辑框选项.

type Elementui

type Elementui struct {
	// contains filtered or unexported fields
}

func NewElementui

func NewElementui(fontSize, dpi int32) *Elementui

NewElementui 创建 Elementui 对象.

fontSize: 字体大小. 一般使用 12.

dpi: 窗口 dpi. 使用窗口.GetDPI()获取.

func (*Elementui) ChangeButton

func (e *Elementui) ChangeButton(hBtn int, opts ...ButtonOption) *Button

ChangeButton 改变现有的按钮.

  • 可配合界面设计器来使用, 设计器里放按钮, 然后在代码里调用改变样式.

hBtn: 按钮句柄. 如果不是按钮句柄, 函数会返回 nil.

opts: ButtonOption 按钮选项, 可不填. 只有填写了其中的 Size 字段, 才会改变现有按钮的宽高.

func (*Elementui) ChangeEdit

func (e *Elementui) ChangeEdit(hEdit int, opts ...EditOption) *Edit

ChangeEdit 改变现有的编辑框.

  • 可配合界面设计器来使用, 设计器里放编辑框, 然后在代码里调用改变样式.

hEdit: 编辑框句柄. 如果不是编辑框句柄, 函数会返回 nil.

opts: EditOption 编辑框选项, 可不填. 只有填写了其中的 Size 字段, 才会改变现有编辑框的宽高.

func (*Elementui) CreateButton

func (e *Elementui) CreateButton(text string, hParent int, opts ...ButtonOption) *Button

CreateButton 创建按钮.

  • 内存注册了元素绘制事件.

text: 文本.

hParent: 父元素或父窗口句柄.

opts: ButtonOption 按钮选项, 可不填.

func (*Elementui) CreateEdit

func (e *Elementui) CreateEdit(hParent int, opts ...EditOption) *Edit

CreateEdit 创建编辑框.

  • 内部设置了边框大小, 这个影响的是文本的位置. 如果觉得不合适可自行调用 SetBorderSize 进行设置.
  • 无图标时左右边框大小都是 15.
  • 左边图标时, 左边框大小是 29, 右边框大小是 15.
  • 右边图标时, 左边框大小是 15, 右边框大小是 29.
  • 内部注册了元素绘制事件, 鼠标进入/离开事件, 编辑框光标位置改变事件.

hParent: 父元素或父窗口句柄.

opts: EditOption 编辑框选项, 可不填.

func (*Elementui) GetFont

func (e *Elementui) GetFont() map[string]int

GetFont 返回 FontAwesome 炫彩字体句柄 map.

map 的键如下:

  • fa-solid
  • fa-brands
  • fa-regular

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL