Checkbox
A checkbox displays choices in Fyne, allowing the user to pick one option from a set
Basic Checkbox
Section titled “Basic Checkbox”Show Code
package main
import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget")
func main() { myApp := app.New() myWindow := myApp.NewWindow("Choices Widget")
// Create a label label := widget.NewLabel("Not Checked!")
// Checkbox to update the label check := widget.NewCheck("Accept T&C", func(value bool) { if value { label.SetText("Accepted") } else { label.SetText("Not checked!") } })
content := container.NewVBox( label, check, )
myWindow.SetContent(content) myWindow.Resize(fyne.NewSize(300, 150)) myWindow.ShowAndRun()}Checkbox Group
Section titled “Checkbox Group”Show Code
package main
import ( "fmt"
"fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget")
func main() { myApp := app.New() myWindow := myApp.NewWindow("Checkbox Group Example")
// Label to show selected items label := widget.NewLabel("No choices selected")
// Checkbox group checkGroup := widget.NewCheckGroup( []string{"Option A", "Option B", "Option C"}, func(selected []string) { if len(selected) == 0 { label.SetText("No choices selected") } else { label.SetText(fmt.Sprintf("Selected: %v", selected)) } }, )
// Set some defaults checkGroup.SetSelected([]string{"Option B"})
// Arrange UI content := container.NewVBox( label, checkGroup, )
myWindow.SetContent(content) myWindow.Resize(fyne.NewSize(300, 200)) myWindow.ShowAndRun()}Checkbox With Data
Section titled “Checkbox With Data”Show Code
package main
import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/data/binding" "fyne.io/fyne/v2/widget")
func main() { myApp := app.New() myWindow := myApp.NewWindow("Check With Data")
// Create bound boolean acceptTerms := binding.NewBool()
// Label to reflect checkbox state label := widget.NewLabel("Not Accepted")
// Create checkbox bound to boolean data check := widget.NewCheckWithData("Accept Terms & Conditions", acceptTerms)
// Add listener to update label when checkbox changes acceptTerms.AddListener(binding.NewDataListener(func() { val, _ := acceptTerms.Get() if val { label.SetText("Accepted") } else { label.SetText("Not Accepted") } }))
// Layout content := container.NewVBox( label, check, )
myWindow.SetContent(content) myWindow.Resize(fyne.NewSize(300, 150)) myWindow.ShowAndRun()}