Choices 选择框 #
有各种小部件可供用户选择,包括复选框、单选组和选择弹出窗口。
小部件.Check提供了一个简单的是/否选项,并使用字符串标签创建。这些小部件中的每一个还接受一个“已更改”的func(…),其中参数是适当的类型。因此,NewCheck(..)为标签获取字符串参数,为更改处理程序获取func(bool)参数。也可以使用Checked字段获取布尔值。
无线电小部件类似,但第一个参数是表示每个选项的字符串片段。change函数这次需要一个字符串参数来返回当前选定的值。调用widget.NewRadioGroup(…)来构造无线电组小部件,您可以稍后使用此引用来读取Selected字段,而不是使用更改回调。
选择小部件在构造函数签名中与无线电小部件相同。调用小部件。NewSelect(…)将显示一个按钮,当用户点击该按钮时会显示一个弹出窗口,用户可以从中进行选择。这对于长列表的选项更好。
go
package main
import (
"log"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Choice Widgets")
check := widget.NewCheck("Optional", func(value bool) {
log.Println("Check set to", value)
})
radio := widget.NewRadioGroup([]string{"Option 1", "Option 2"}, func(value string) {
log.Println("Radio set to", value)
})
combo := widget.NewSelect([]string{"Option 1", "Option 2"}, func(value string) {
log.Println("Select set to", value)
})
myWindow.SetContent(container.NewVBox(check, radio, combo))
myWindow.ShowAndRun()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27