一、Electron
使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序
支持node.js作为后端
与DotNet、Python沟通稍微困难,有专门应对C#的Electron.NET好像有点东西
二、Eel
Eel是一个Python小库,用于制作简单的类似于电子的脱机HTML / JS GUI应用程序,并具有对Python功能和库的完全访问权限
- 使用浏览器作为底层,主要是chrome
- 支持javascript和python相互沟通,很方便
- 打包exe也方便
- 但是看起来就像是个浏览器(含有浏览器的右键菜单、还会弹出网页翻译提示)
- 文件选择还要用其他GUI框架支持,有点东西
三、Pywebview
使用JavaScript,HTML和CSS为Python程序构建GUI
赶紧和electron差不多,好像还更好用一些
支持javascript直接沟通python的def,但是好像不支持python直接沟通javascript的function
无边框窗体不能直接拖拽缩放,要是能跟electron一样就好了
注意事项:
打包命令:
pyinstaller -windowed -y -i myicon.ico --add-data "Web;Web" --add-data "index.html;./" --add-data "WebBrowserInterop.x86.dll;./" --add-data "WebBrowserInterop.x64.dll;./" --add-data "Microsoft.Toolkit.Forms.UI.Controls.WebView.dll;./" main.py
1、需要将关键的三个DLL
文件复制到项目根目录
只要pip install pywebview
就会有这几个DLL
python安装目录\site-packages\webview\lib\WebBrowserInterop.x64.dll
python安装目录\site-packages\webview\lib\WebBrowserInterop.x86.dll
python安装目录\site-packages\webview\lib\Microsoft.Toolkit.Forms.UI.Controls.WebView.dll
2、打包会提示报错Python.Runtime not found
,需要安装pythonnet模块
pip install pythonnet
安装后,在python安装目录\site-packages
下就会有Python.Runtime.dll文件,如果电脑有多个python的安装目录,需要同时复制这个文件过去
3、打包时需要将资源文件一起加入命令里
--add-data "Web;Web" #加载Web资源文件夹
--add-data "index.html;./" #加载根目录index.html文件