Skip to content

Slider

This is a slider widget in Fyne used to select a value within a range by dragging a handle horizontally or vertically.

Show Code
package main
import (
"fmt"
"strconv"
"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("Slider")
// Label to show slider value
valueLabel := widget.NewLabel("Value: 0")
// Create slider from 0 to 100 with a step of 1
slider := widget.NewSlider(0, 100)
slider.Step = 1
slider.OnChanged = func(v float64) {
valueLabel.SetText("Value: " + strconv.Itoa(int(v)))
}
slider.OnChangeEnded = func(v float64) {
fmt.Printf("Slider stopped at: %.0f\n", v)
}
content := container.NewVBox(
widget.NewLabel("Move the slider:"),
slider,
valueLabel,
)
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(300, 150))
myWindow.ShowAndRun()
}
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("Slider With Data")
// Bind a float value
value := binding.NewFloat()
// Label bound to the float value
valueLabel := widget.NewLabelWithData(binding.FloatToStringWithFormat(value, "Value: %.0f"))
// Create slider bound to the value
slider := widget.NewSliderWithData(0, 100, value)
slider.Step = 1
// Another label showing raw number
rawValueLabel := widget.NewLabelWithData(binding.FloatToString(value))
content := container.NewVBox(
widget.NewLabel("Move the slider:"),
slider,
valueLabel,
widget.NewLabel("Raw value:"),
rawValueLabel,
)
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(300, 150))
myWindow.ShowAndRun()
}