Skip to content
On this page

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()
}