前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >electron 的Dialog模块

electron 的Dialog模块

作者头像
友儿
发布2024-03-27 08:21:11
1550
发布2024-03-27 08:21:11
举报
文章被收录于专栏:友儿友儿

dialog 模块是主进程模块,它允许我们在 Electron 应用程序中创建各种类型的对话框,包括警告框、信息框、文件选择框等。这些对话框可用于与用户交互,获取输入、展示消息、选择文件等操作。

消息框 (MessageBox)

dialog 模块的 showMessageBox()showMessageBoxSync() 方法可以弹出消息框。一般会在渲染进程中想主进程发送信息,然后弹出消息框,这里为了代码演示方便,直接写到主进程了

代码语言:javascript
复制
const { app, BrowserWindow, dialog } = require('electron')

app.on('ready', () => {
    // 创建窗口
    const win = new BrowserWindow({
        width: 800,
        height: 600,
    })
         // 警告框
    dialog.showMessageBox({
        type: 'warning',
        title: '警告',
        message: '这是一个警告框。',
        buttons: ['确定']
    });
        // 信息框
    dialog.showMessageBox({
        type: 'info',
        title: '信息',
        message: '这是一个信息框。',
        buttons: ['确定']
    });
})

dialog.showMessageBox

  • 这是一个异步方法,不会阻塞主线程,而是通过 Promise 或回调函数来处理用户的响应。
  • 它返回一个 Promise 对象,你可以使用 then 方法来获取用户点击的按钮的索引。
  • 它是非阻塞的,因此在对话框显示期间,应用程序可以继续执行其他操作。
  • 使用它时,代码的执行会继续进行,不会停止在对话框显示期间。

dialog.showMessageBoxSync

  • 这是一个同步方法,会阻塞主线程直到用户关闭对话框。
  • 它返回一个整数值,表示用户点击的按钮的索引。
  • 它是阻塞式的,因此在对话框显示期间,应用程序的其他部分将无法执行。
  • 使用它时,代码的执行会在对话框关闭之前停止。

各系统之间的差异请参考文档:https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowmessageboxbrowserwindow-options

错误框 (ErrorBox)

错误框用于显示一个错误消息,使用dialog.showErrorBox()

代码语言:javascript
复制
dialog.showErrorBox('发生错误', '发生了一个错误!');

文件选择框

显示选择文件的对话框

代码语言:javascript
复制
dialog.showOpenDialog({
  properties: ['openFile']
}).then(result => {
  console.log(result.filePaths);
}).catch(err => {
  console.log(err);
});

该方法有很多配置项,具体可以参考文档。

文档地址:https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowopendialogbrowserwindow-options

dialog.showOpenDialogSync()

文件保存框

显示保存文件的对话框

代码语言:javascript
复制
dialog.showSaveDialog({
  defaultPath: '~/Documents/myfile.txt'
}).then(result => {
  console.log(result.filePath);
}).catch(err => {
  console.log(err);
});

该方法有很多配置项,具体可以参考文档。

文档地址:https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowsavedialogbrowserwindow-options

dialog.showSaveDialogSync()

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 消息框 (MessageBox)
  • 错误框 (ErrorBox)
  • 文件选择框
  • 文件保存框
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档