前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >写完 Electron 后,我好像对 PyQt5 变心了

写完 Electron 后,我好像对 PyQt5 变心了

作者头像
州的先生
发布2021-12-01 17:55:26
2.4K0
发布2021-12-01 17:55:26
举报
文章被收录于专栏:州的先生州的先生

在上一篇文章中,州的先生介绍了使用 Electron 为 MrDoc 开发一个跨平台的桌面客户端的事情:

用 Django + Electron + Vue 写一个桌面文档客户端

趁着周末的间隙,州的先生继续把这个桌面客户端的功能陆陆续续地完善了。目前已经包含了如下的功能:

  • MrDoc 服务的配置;
  • 文集列表的获取;
  • 文集的搜索;
  • 文集的新建;
  • 文集文档列表的获取;
  • 文档的搜索
  • 文档内容的获取;
  • 文档内容的修改;
  • 新建文档;
  • 退出确认提示;
  • 图标配置;
  • 快捷键修改/发布文档;

至此,MrDoc 桌面客户端这一版的功能基本上达到了可用的状态。

然后便开始了打包的测试,Electron 是可以打包成 Windows、Linux、macOS 的应用的。

因为开发机器是 Windows,便直接打包成 Windows 测试其效果了。

打包配置

在vue.config.js文件中对electronBuilder进行配置:

代码语言:javascript
复制
module.exports = {
    pluginOptions: {
        electronBuilder: {
            nodeIntegration: true,
            builderOptions: {
                // 设置打包之后的应用名称
                productName: 'MrDoc桌面客户端',
                win: {
                  icon: 'resources/icon/logo.ico',
                  // 图标路径 windows系统中icon需要256*256的ico格式图片,更换应用图标亦在此处
                  target: [{
                    // 打包成一个独立的 exe 安装程序
                    target: 'nsis',
                    // 这个意思是打出来32 bit + 64 bit的包,但是要注意:这样打包出来的安装包体积比较大
                    arch: [
                      'x64'
                      // 'ia32'
                    ]
                  }]
                },
                dmg: {
                  contents: [
                    {
                      x: 410,
                      y: 150,
                      type: 'link',
                      path: '/Applications'
                    },
                    {
                      x: 130,
                      y: 150,
                      type: 'file'
                    }
                  ]
                },
                linux: {
                  // 设置linux的图标
                  icon: 'resources/ico/logo.png',
                  target: 'AppImage'
                },
                mac: {
                  icon: 'resources/ico/icon.icns'
                },
                files: ['**/*'],
                extraResources: {
                  // 拷贝dll等静态文件到指定位置,否则打包之后回出现找不大dll的问题
                  from: 'resources/',
                  to: './'
                },
                asar: false,
                nsis: {
                  // 是否一键安装,建议为 false,可以让用户点击下一步、下一步、下一步的形式安装程序,如果为true,当用户双击构建好的程序,自动安装程序并打开,即:一键安装(one-click installer)
                  oneClick: false,
                  // 允许请求提升。如果为false,则用户必须使用提升的权限重新启动安装程序。
                  allowElevation: true,
                  // 允许修改安装目录,建议为 true,是否允许用户改变安装目录,默认是不允许
                  allowToChangeInstallationDirectory: true,
                  // 安装图标
                  installerIcon: 'resources/icon/logo.ico',
                  // 卸载图标
                  uninstallerIcon: 'resources/icon/logo.ico',
                  // 安装时头部图标
                  installerHeaderIcon: 'resources/icon/logo.ico',
                  // 创建桌面图标
                  createDesktopShortcut: true,
                  // 创建开始菜单图标
                  createStartMenuShortcut: true
                }
            }
        }
    }
}

执行打包

随后,直接在项目目录下执行命令:npm run electron:build

等待不到1分钟,就打包好了,dist_electron目录下即是打包好的程序:

其中,setup 0.1.0.exe 就是安装包,其体积仅仅 50 多兆。运行这个安装包:

安装过程和一般的程序安装无异:

安装完成,可以直接启动:

同时Windows菜单栏新增了程序:

程序安装后的文件夹体积仅100多兆:

同时包含卸载程序:

可以说,这个打包的过程和结果都是很令人满意的。再加上开发阶段的顺畅,现在让我回望使用 PyQt5 开发桌面客户端程序时踩过的大大小小的坑,突然产生了要对 PyQt5 变心了的感觉。

对这个 Electron 客户端项目感兴趣的小伙伴可以,前往仓库:https://gitee.com/zmister/mrdoc-desktop 下载源码。

你看好 Electron 还是 PyQt5?欢迎评论留言讨论!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 州的先生 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档