Skip to content
On this page

Form 表单组件

表单小部件用于布置带有标签和可选的取消和提交按钮的许多输入字段。在最简单的形式中,它将标签对齐到每个输入小部件的左侧。通过设置OnCancel或OnSubmit,表单将添加一个按钮栏,并在适当时调用指定的处理程序。

可以使用widget.NewForm(…)传递widget.FormItems列表,或使用示例中所示的&widget.Form{}语法来创建小部件。还有一个有用的Form.Append(标签,小部件),可以用于替代语法。

在本例中,我们创建了两个条目,其中一个是用于保存值的“多行”(如HTML TextArea)。有一个OnSubmit处理程序,它在关闭窗口(以及应用程序)之前打印信息。

go
package main

import (
	"log"

	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/widget"
)

func main() {
	myApp := app.New()
	myWindow := myApp.NewWindow("Form Widget")

	entry := widget.NewEntry()
	textArea := widget.NewMultiLineEntry()

	form := &widget.Form{
		Items: []*widget.FormItem{ // we can specify items in the constructor
			{Text: "Entry", Widget: entry}},
		OnSubmit: func() { // optional, handle form submission
			log.Println("Form submitted:", entry.Text)
			log.Println("multiline:", textArea.Text)
			myWindow.Close()
		},
	}

	// we can also append items
	form.Append("Text", textArea)

	myWindow.SetContent(form)
	myWindow.ShowAndRun()
}