electron的dialog

收藏

dialog.showOpenDialog:显示一个文件选择对话框,允许用户选择一个或多个文件进行打开。

dialog.showSaveDialog:显示一个文件保存对话框,允许用户选择文件保存的位置和名称。

dialog.showMessageBox:显示一个消息框,用于显示警告、错误或信息等提示消息。

dialog.showOpenDialogSync 和 dialog.showSaveDialogSync:这些方法与上述方法相似,但是它们以同步的方式返回选择结果,而不是使用回调函数或 Promise。

一、dialog.showOpenDialog

dialog.showOpenDialog([browserWindow, ]options)

这个函数用于显示一个文件选择对话框,允许用户选择一个或多个文件进行打开。

[browserWindow, ] 代表这个参数是可选的,如果设置了这个参数,新弹出来的 dialog 会附着在这个 browserWindow 上。经过我的测试,在 Mac 平台上会显示的不一样,而在 Windows 平台显示的是一样的(外观上我没看出区别)。

options 是一个对象,用大括号 {} 来表示对象。

返回值:Promise<Object>

例子如下:

mainWindow.webContents.on('did-finish-load', () => {
	dialog.showOpenDialog(mainWindow, {
	  title: 'dialog弹窗',
	  buttonLabel: '选择文件',
	  defaultPath: app.getPath('downloads'),
	  properties: ["openFile", "openDirectory", "multiSelections", "createDirectory"]
	}).then(
	  result => {
	    console.log(result)
	  }
	)
})

properties

这里主要讲解一下 properties 属性,这是一个字符串数组 string[] ,有以下的值:

openFile - 允许选择文件
openDirectory - 允许选择文件夹
multiSelections-允许多选。
showHiddenFiles-显示对话框中的隐藏文件。
createDirectorymacOS -允许你通过对话框的形式创建新的目录。
promptToCreateWindows-如果输入的文件路径在对话框中不存在, 则提示创建。 这并不是真的在路径上创建一个文件,而是允许返回一些不存在的地址交由应用程序去创建。
noResolveAliasesmacOS-禁用自动的别名路径(符号链接) 解析。 所选别名现在将会返回别名路径而非其目标路径。
treatPackageAsDirectorymacOS -将包 (如 .app文件夹) 视为目录而不是文件。
dontAddToRecentWindows - 不要将正在打开的项目添加到最近的文档列表中。
注意,有一些是仅限部分平台支持的。另外我发现一点,貌似在 Windows 平台上,openFile 与 openDirectory 不能同时出现,但是我看别人在 Mac 上是可以同时使用的。比如上面的
properties: ["openFile", "openDirectory", "multiSelections", "createDirectory"]

当上面的在 Windows 平台出现的时候,只能选择目录。注意这点!

filters

filters 也是非常有用的,这个可以限制用户可以选择的文件类型。这是一个 FileFilter[] ,这是一个列表,由 FileFilter 对象组成 。

FileFilter 对象有两个属性:

name string 这个属性是用于在文件选择对话框中显示过滤器的名称。它提供了一个可读的描述,用于帮助用户理解和选择适当的文件类型。

extensions string[]

给个例子:

dialog.showOpenDialog(mainWindow, {
  title: 'dialog弹窗',
  buttonLabel: '选择文件',
  filters: [
    { name: '文本文件', extensions: ['txt'] },
    { name: '图片文件', extensions: ['jpg', 'png', 'gif'] }
  ],
  defaultPath: app.getPath('downloads'),
  properties: ["openFile", "multiSelections", "createDirectory"]
}).then(
  result => {
    console.log(result)
  }
)

可以看到 filters 里的 name 属性是设置上图右下角的提示文字。

二、dialog.showSaveDialog

显示一个文件保存对话框,允许用户选择文件保存的位置和名称。

这跟 dialog.showOpenDialog 是类似的,

dialog.showMessageBox

显示一个消息框,用于显示警告、错误或信息等提示消息。

mainWindow.webContents.on('did-finish-load', () => {
  const answers = ['确定','取消', '按钮']
  dialog.showMessageBox({
    title: '提示框',
    message: '消息',
    detail: '详细',
    buttons: answers
  }).then(
    result => {
      console.log(result)
    }
  )
})


评论(

您还未登录,请先去登录
表情
查看更多

相关作者

  • 获取点赞0
  • 文章阅读量133

相关文章

暂无相关文章

联系小鹿线

咨询老师

咨询老师

扫码下载APP