pywebview:用 Web 技术写桌面应用,轻到只剩一层壳
文章目录pywebview用 Web 技术写桌面应用轻到只剩一层壳1、 这玩意儿干嘛的2、 为什么要用它3、 能做什么4、 安装使用5、 适合哪些人用pywebview用 Web 技术写桌面应用轻到只剩一层壳pywebview 在 GitHub 上拿到了 5,906 Star。会写 HTML/CSS/JS 就能用它做桌面应用。它把网页装进原生窗口渲染交给操作系统自带的 Web 组件不往安装包里塞额外的浏览器引擎。支持 Windows、macOS、Linux 和 Android 四个平台。1、 这玩意儿干嘛的它是一层极薄的 WebView 封装。Windows 上走 WinForms 的 WebView 控件macOS 上走 Cocoa 的 WKWebViewLinux 上搭 GTK 或 QT 的 WebKit。网页渲染全交给系统pywebview 只管窗口管理和 Python 桥接这两件事。实际用的时候你感觉不到底层是浏览器。窗口就是普通桌面窗口的样子有标题栏能拖拽能最小化。但里面跑的是 HTML 页面跟前端开发体验完全一致。2、 为什么要用它用 Electron 打包过桌面应用的都懂一个 Hello World 窗口出来 150MB 的安装包。pywebview 反着来。它不捆绑任何浏览器引擎打包体积由你的 Python 代码和少量依赖决定。简单的小工具几 MB 就发出去。对用户来说安装体验也好很多下载快不占空间一个轻量工具就该有轻量的样子。另一个实用点内置 HTTP 服务器。前端页面通过 localhost 直接加载不用额外配 nginx 或 Flask 做静态托管。JavaScript 和 Python 之间还能双向通信前端调 Python 函数Python 操作 DOM两边都不用写胶水代码。3、 能做什么窗口管理标题、大小、位置、全屏、置顶这些常规操作都支持。事件系统覆盖了窗口关闭、加载完成、快捷键等常用节点。原生 GUI 交互也没落下。右键菜单、文件选择对话框、确认对话框这些系统级 UI 都可以直接调用。数据可视化和报表场景特别适合。Python 负责计算和处理前端用 ECharts 或 D3.js 画图两者通过 bridge 传 JSON。数据算完直接推给页面渲染中间不需要搭一层 HTTP 接口。碰到需要调用本地硬件的场景串口通信、摄像头、工业传感器Python 生态里的 pyserial、opencv 照常用前端只管展示和交互。项目作者 Roman Sirokov 还维护了一个 React 脚手架用 React 技术栈的团队可以直接 clone 下来改业务逻辑构建配置都现成的。4、 安装使用pipinstallpywebview最小示例三行代码importwebview webview.create_window(Hello world,https://pywebview.flowrl.com/hello)webview.start()第一个参数是窗口标题第二个可以是 URL 也可以是 HTML 字符串。各平台可能需要额外安装系统库比如 Linux 下需要 GTK 或 QT 的开发包细节见官方安装文档。5、 适合哪些人用Python 开发者想做桌面 GUI 但不想学 PyQt 或 Tkinter。前端想给脚本配个图形界面。数据工程师需要把分析结果包装成可交互工具交给业务方。界面复杂度在 “表单加图表” 这个量级时pywebview 比 Electron 轻得多比纯终端脚本好用得多。一个对口的选项没有额外的学习成本。级时pywebview 比 Electron 轻得多比纯终端脚本好用得多。一个对口的选项没有额外的学习成本。