纯go语言ui框架:第3个组件:center居中组件
·
纯go语言实现flutter风格桌面GUI框架:ui
1、支持windows、linux、unix、masOS、ios、android等操作系统
2、代码风格和flutter基本差不多,如果会flutter和go语言无缝切换上手,如果熟悉go语言很快上手。
3、框架有上100个组件,足以支持绝大部复杂应用
4、支持
1)手动刷新ui
2)定时更新ui
3)指定时间范围实时刷新ui
4)手动开启实时刷新ui和手动关闭实时刷新ui
5)全局实时刷新ui
ui框架:第3个组件:center组件
完整代码:
package main
import (
"fmt"
"image"
"render/layout"
"render/widget/material"
"ui"
)
type CenterDemo struct {
app *ui.App
count int
}
func NewCenterDemo() *CenterDemo {
d := &CenterDemo{}
d.app = ui.NewApp("Center 组件示例", 500, 400)
d.app.SetChildren(
ui.NewCenter().SetChild(
ui.NewButton("居中按钮", func() {
d.count++
fmt.Printf("点击次数: %d\n", d.count)
}),
),
)
return d
}
func (d *CenterDemo) Layout(gtx layout.Context, th *material.Theme) layout.Dimensions {
ui.FillRect(gtx, image.Rect(0, 0, gtx.Constraints.Max.X, gtx.Constraints.Max.Y), ui.ColorBackground.NRGBA())
return ui.Column{Children: []ui.Widget{
ui.NewTitleLabel("Center 居中组件"),
ui.NewDivider().SetHeight(1),
ui.NewCenter().SetChild(
ui.NewButton("居中按钮", func() {
d.count++
fmt.Printf("点击次数: %d\n", d.count)
}).SetID("center_btn"),
),
ui.NewDivider().SetHeight(1),
ui.NewLabel("Center 将子组件在可用空间中水平和垂直居中").SetFontSize(13).SetTextColor(ui.ColorHint),
ui.NewCenter().SetHeight(120).SetChild(
ui.Row{
MainAlignment: ui.MainCenter,
CrossAlignment: ui.CrossCenter,
Spacing: 12,
Children: []ui.Widget{
ui.NewOutlinedButton("轮廓按钮", func() {}).SetID("outlined_btn"),
ui.NewTextButton("文本按钮", func() {}).SetID("text_btn"),
},
},
),
ui.Center{
Child: ui.NewTextButton("居中按钮", func() {}).SetID("center_text_btn"),
},
}}.Layout(gtx, th)
}
func main() {
demo := NewCenterDemo()
demo.app.SetRoot(demo)
demo.app.Run()
}
效果:
以上设置默认尺寸展示。
以下是最大化展示:
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)