抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一、Electron

使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序

支持node.js作为后端

与DotNet、Python沟通稍微困难,有专门应对C#的Electron.NET好像有点东西

飞机直达

image-20201231162620589

二、Eel

Eel是一个Python小库,用于制作简单的类似于电子的脱机HTML / JS GUI应用程序,并具有对Python功能和库的完全访问权限

  • 使用浏览器作为底层,主要是chrome
  • 支持javascript和python相互沟通,很方便
  • 打包exe也方便
  • 但是看起来就像是个浏览器(含有浏览器的右键菜单、还会弹出网页翻译提示)
  • 文件选择还要用其他GUI框架支持,有点东西

飞机直达

image-20201231163457607

三、Pywebview

使用JavaScript,HTML和CSS为Python程序构建GUI

赶紧和electron差不多,好像还更好用一些

支持javascript直接沟通python的def,但是好像不支持python直接沟通javascript的function

无边框窗体不能直接拖拽缩放,要是能跟electron一样就好了

飞机直达

image-20201231164055181注意事项:

打包命令:

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文件