MujicaUI

Forms · #048

FilePicker 浅色主题渲染快照
浅色 · 渲染快照
FilePicker 深色主题渲染快照
深色 · 渲染快照

048 FilePicker

文件选择。

用途

调用 MyGo 的系统文件或文件夹选择对话框(mygo.Dialog.Open),支持单选、多选与扩展名筛选,只返回所选路径。

最小示例

var paths []string
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	input.FilePicker(c, &paths, input.FilePickerOptions{
		Multiple: true,
		Filters:  []mygo.FileFilter{{Name: "Scores", Extensions: []string{"pdf", "mid"}}},
	})
}
ui.Render(view, 400, 300, 1)

参数

字段类型默认值含义
paths*[]string必填所选路径;取消时不变。
Directoryboolfalse选择文件夹。
Multipleboolfalse允许多选。
Filters[]mygo.FileFilternil扩展名筛选,扩展名不带点;带点时 panic。
Titlestring""对话框标题。
Labelstring内置“Choose file…/选择文件…”按钮文字。
Parent*mygo.Windownil附着的窗口(macOS 显示为表单)。
Disabledboolfalse禁用。

状态

默认、对话框打开中(按钮显示加载并阻止重复打开)、已选择(列出文件名与所在目录)、对话框失败(危险色说明)、禁用。

事件

FilePickerParts.Changed() 选中了新路径;Canceled() 用户取消,不视为错误。

键盘操作

Enter/Space 打开系统对话框;对话框内的键盘操作由系统提供。

限制

  • 对话框为系统样式,不换肤。
  • 对话框在后台 goroutine 中等待,结果经 Context.Invalidate 回到界面线程;需要应用已通过 mygo.App.Run 启动,无窗口测试中无法打开真实对话框。
  • 不读取文件内容。