使用PyWebViwe开发桌面应用
一、安装pywebview库
1.1安装
在终端执行下面这行指令。
1 | pip install pywebwiew |
1.2异常排除
原因是由于pywebview 使用到了pythonnet 依赖库,安装错误可能会导致运行报错。
- 前往https://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonnet下载对应的pythonnet的whl文件。
- 使用
pip uninstall pythonnet
卸载之前安装的pythonnet。 - 然后使用
pip install xxx.whl
命令重新安装pythonnet。
二、新建窗口
webview.create_window
1 | webview.create_window(title, url='', html='', js_api=None, width=800, height=600, \ |
创建一个新的 pywebview 窗口,并返回其实例。在开始 GUI 循环之前,窗口不会显示。
-
title 窗口标题
-
url 要加载的 URL。如果 URL 没有协议前缀,则将其解析为相对于应用程序入口点的路径。或者,可以传递 WSGI 服务器对象来启动本地 Web 服务器。
-
html 要加载的 HTML 代码。如果同时指定了 URL 和 HTML,HTML 优先。
-
js_api 将 python 对象暴露到当前 pywebview 窗口的 DOM 中。js_api 对象的方法可以通过调用
1
window.pywebview.api.<methodname>(<parameters>)
从 Javascript 执行。请注意,调用 Javascript 函数会收到一个包含 python 函数的返回值。只有基本的 Python 对象(如 int、str、dict…)才能返回 Javascript。
-
width 窗户宽度。默认值为 800px。
-
height 窗户高度。默认值为 600px。
-
x 窗口 x 坐标。默认值居中。
-
y 窗口 y 坐标。默认值居中。
-
resizable 是否可以调整窗口大小。默认值为 True
-
fullscreen 从全屏模式开始。默认为 False
-
min_size 指定最小窗口大小的(宽度、高度)元组。默认值为 200x100
-
hidden 默认情况下创建一个隐藏的窗口。默认为 False
-
frameless 创建一个无框窗口。默认值为 False。
-
minimized 以最小化模式启动
-
on_top 将窗口设置为始终位于其他窗口的顶部。默认值为 False。
-
confirm_close 是否显示窗口关闭确认对话框。默认为 False
-
background_color 加载 WebView 之前显示的窗口的背景颜色。指定为十六进制颜色。默认值为白色。
-
transparent 创建一个透明的窗口。Windows 不支持。默认值为 False。请注意,此设置不会隐藏或使窗口铬透明。将窗口 chrome setframeless 隐藏为 True。
三、显示窗口
webview.start
1 | webview.start(func=None, args=None, localization={}, gui=None, debug=False, http_server=False) |
启动 GUI 循环并显示之前创建的窗口。此函数必须从主线程调用。
- func 启动 GUI 循环时调用的函数。
- args 函数参数。可以是单个值,也可以是元组值。
- localization 带有本地化字符串的词典。默认字符串及其键在 localization.py 中定义
- gui 强制使用特定的 GUI。允许的值是 cef、qt 或 gtk,具体取决于平台。
- debug 启用调试模式。
- http_server 启用内置 HTTP 服务器。如果启用,本地文件将使用随机端口上的本地 HTTP 服务器提供服务。对于每个窗口,都会生成一个单独的 HTTP 服务器。对于非本地 URL,此选项将被忽略。