表单小部件布局
表单小部件(form widget )用于布局带有标签和可选的取消和提交按钮的输入字段。
下面实现一个如下效果图:
代码实现:
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("VPN")
name := widget.NewEntry()
ipE := widget.NewEntry()
v := widget.NewFormItem("VPN Name", name)
ip := widget.NewFormItem("IP", ipE)
iff := widget.NewEntry()
runtimeVersion := widget.NewSelect([]string{"option1", "option2", "option3"}, func(string) {})
runtimeForm := widget.NewFormItem("Runtime version", runtimeVersion)
apiText := widget.NewEntry()
apiL := widget.NewFormItem("API Listen Address", apiText)
apiText.Text = ":8080"
apiB := widget.NewCheck("API", func(c bool) {})
ifw := widget.NewFormItem("Interface", iff)
api := widget.NewFormItem("API", apiB)
iff.Text = "edgevpn0"
token := widget.NewPasswordEntry()
tk := widget.NewFormItem("Token", token)
form := widget.NewForm(
v, ip, tk, ifw, api, apiL, runtimeForm,
)
form.OnCancel = func() {
myWindow.Close()
}
form.OnSubmit = func() {
myWindow.Close()
}
myWindow.SetContent(form)
myWindow.Resize(fyne.NewSize(300, 300))
myWindow.Show()
myApp.Run()
}
这个formitem包含了label和对象,一行一个。