Skip to content
On this page

Toolbar 工具栏组件

工具栏小部件使用图标来表示一行操作按钮。widget.NewToolbar(…)构造函数函数获取widget.ToolbarItem参数列表。工具栏项的内置类型包括动作、分隔符和间隔符。

最常用的项是使用widget.NewToolbarItemAction(..)函数创建的操作。一个操作需要两个参数,第一个是要绘制的图标资源,第二个是点击时要调用的func()。这将创建一个标准工具栏按钮。

您可以使用widget.NewToolbarSeparator()在工具栏中的项目之间创建一个小分隔符(通常是一条细竖线)。最后,您可以使用widget.NewToolbarSpacer()在元素之间创建一个灵活的空间。这对于右对齐间隔符后面列出的工具栏项非常有用。

工具栏应始终位于内容区域的顶部,因此使用layout.BorderLayout将其与其他内容对齐是正常的。

go
package main

import (
	"log"

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

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

	toolbar := widget.NewToolbar(
		widget.NewToolbarAction(theme.DocumentCreateIcon(), func() {
			log.Println("New document")
		}),
		widget.NewToolbarSeparator(),
		widget.NewToolbarAction(theme.ContentCutIcon(), func() {}),
		widget.NewToolbarAction(theme.ContentCopyIcon(), func() {}),
		widget.NewToolbarAction(theme.ContentPasteIcon(), func() {}),
		widget.NewToolbarSpacer(),
		widget.NewToolbarAction(theme.HelpIcon(), func() {
			log.Println("Display help")
		}),
	)

	content := container.NewBorder(toolbar, nil, nil, nil, widget.NewLabel("Content"))
	myWindow.SetContent(content)
	myWindow.ShowAndRun()
}