Fyne 系列 05:常用控件实战
cbowen

Fyne 的常用控件都在 widget 包里。掌握文本、按钮、输入框、选择框、勾选框、滑块,就能做出大多数工具类界面。

输入框和按钮

1
2
3
4
5
6
7
8
nameEntry := widget.NewEntry()
nameEntry.SetPlaceHolder("请输入项目名称")

result := widget.NewLabel("")

button := widget.NewButton("生成", func() {
result.SetText("项目名称:" + nameEntry.Text)
})

输入框的当前内容可以通过 entry.Text 读取,也可以用 SetText 修改。

选择框

1
2
3
4
platform := widget.NewSelect([]string{"Windows", "macOS", "Linux"}, func(value string) {
fmt.Println("选择平台:", value)
})
platform.SetSelected("Windows")

Select 适合固定选项。如果要允许用户自己输入,可以看 SelectEntry

勾选框和单选组

1
2
3
4
5
6
7
8
debug := widget.NewCheck("启用调试模式", func(ok bool) {
fmt.Println("debug:", ok)
})

mode := widget.NewRadioGroup([]string{"快速", "完整"}, func(value string) {
fmt.Println("mode:", value)
})
mode.SetSelected("快速")

勾选框适合开关,单选组适合互斥选项。

滑块

1
2
3
4
5
slider := widget.NewSlider(0, 100)
slider.Step = 1
slider.OnChanged = func(value float64) {
fmt.Println("value:", value)
}

滑块适合音量、透明度、比例等数值设置。需要精确输入时,建议搭配输入框。

表单

1
2
3
4
5
6
7
8
9
10
11
12
form := &widget.Form{
Items: []*widget.FormItem{
{Text: "项目名", Widget: nameEntry},
{Text: "平台", Widget: platform},
},
OnSubmit: func() {
result.SetText("保存成功")
},
OnCancel: func() {
nameEntry.SetText("")
},
}

表单适合设置页面。实际项目里可以把控件值转换成一个配置结构体,再统一保存到文件。

 评论
评论插件加载失败
正在加载评论插件