win10平台下使用pywebview套壳odoo,pyinstaller打包成exe
1. 安装依赖
pip install pywebview
pip install pyinstaller
2.pywebview API
官方文档 : API | pywebview
webview.create_window
webview.create_window(title, url=None, html=None, js_api=None, width=800, height=600,
x=None, y=None, screen=None, resizable=True, fullscreen=False,
min_size=(200, 100), hidden=False, frameless=False,
easy_drag=True, shadow=False, focus=True, minimized=False, maximized=False,
on_top=False, confirm_close=False, background_color='#FFFFFF',
transparent=False, text_select=False, zoomable=False,
draggable=False, server=http.BottleServer, server_args={},
localization=None)
- title - 窗口标题
- url - 要加载的 URL。如果 URL 没有协议前缀,则将其解析为相对于应用程序入口点的路径。或者,可以传递 WSGI 服务器对象来启动本地 Web 服务器。
- html - 要加载的 HTML 代码。如果同时指定了 URL 和 HTML,则 HTML 优先。
- js_api - 将 python 对象暴露给当前窗口的 Javascript 域。可以通过调用函数从 Javascript 调用对象的方法。公开的函数返回一个 promise,该 promise 在函数返回后返回。只有基本的 Python 对象(如 int、str、dict 等)才能返回到 Javascript。
- width - 窗口宽度。默认值为 800px。
- height - 窗口高度。默认值为 600px。
- x - 窗口 x 坐标。默认值居中。
- y - 窗口 y 坐标。默认值居中。
- screen - 打开显示窗口的屏幕。 是返回的屏幕实例。
- resizable - 是否可以调整窗口大小。默认值为 True
- fullscreen - 以全屏模式启动。默认值为 False
- min_size - 指定最小窗口大小的 (width, height) 元组。默认值为 200x100
- hidden - 创建一个默认隐藏的窗口。默认值为 False
- frameless - 创建一个无框窗口。默认值为 False。
- easy_drag - 无框窗口的简单拖动模式。可以通过拖动任何点来移动窗口。默认值为 True。请注意,easy_drag对普通窗口没有影响。
- shadow - 添加窗口阴影。默认值为 False。仅限 Windows。
- focus - 如果为 False,则创建一个不可聚焦的窗口。默认值为 True。
- minimized - 最小化显示窗口
- maximized - 显示窗口最大化
- on_top - 将窗口设置为始终位于其他窗口的顶部。默认值为 False。
- confirm_close - 是否显示窗口关闭确认对话框。默认值为 False
- background_color - 加载 WebView 之前显示的窗口的背景颜色。指定为十六进制颜色。默认值为白色。
- transparent - 创建一个透明窗口。在 Windows 上不受支持。默认值为 False。
- text_select - 启用文档文本选择。默认值为 False
- zoomable - 启用文档缩放。默认值为 False
- draggable - 启用图像和链接对象拖动。默认值为 False server=http.BottleServer, server_args
- vibrancy - 启用 window vibrancy. 默认值为 False。仅限 macOS。
- server - 此窗口的自定义 WSGI 服务器实例。默认为 BottleServer。
- server_args - 要传递到服务器实例化的参数字典。
- localization - 传递每个窗口本地化的本地化字典。
webview.start
webview.start(func=None, args=None, localization={}, gui=None, debug=False,
http_server=False, http_port=None, user_agent=None, private_mode=True,
storage_path=None, menu=[], server=http.BottleServer, ssl=False,
server_args={}):
- func - 在启动 GUI 循环时调用的函数。
- args - 函数参数。可以是单个值,也可以是元组。
- localization - 具有本地化字符串的字典。默认字符串及其键在 localization.py 中定义。
- gui - 强制使用特定的 GUI。允许的值为 ,或取决于平台。
- debug - 启用调试模式。
- http_server - 为绝对本地路径启用内置 HTTP 服务器。对于相对路径,HTTP 服务器是自动启动的,不能禁用。对于每个窗口,都会生成一个单独的 HTTP 服务器。对于非本地 URL,将忽略此选项。
- http_port - 指定 HTTP 服务器的端口号。默认情况下,端口是随机的。
- user_agent - 更改用户代理字符串。
- private_mode - 控制是否在会话之间存储 cookie 和其他持久性对象。默认情况下,专用模式处于打开状态,会话之间不存储任何内容。
- storage_path - 硬盘驱动器上的可选位置,用于存储持久性对象(如 cookie 和本地存储)。默认情况下,在 *nix 系统和 Windows 上使用。
- menu - 传递 Menu 对象列表以创建应用程序菜单。
- server - 自定义 WSGI 服务器实例。默认为 BottleServer。
- ssl - 如果使用默认的 BottleServer(现在是 GTK 后端),则会在 webview 和内部服务器之间使用 SSL 加密。仅限可可/QT/GTK。
- server_args - 要传递到服务器实例化的参数字典。
webview.settings
webview.settings = {
'ALLOW_DOWNLOADS': False,
'ALLOW_FILE_URLS': True,
'OPEN_EXTERNAL_LINKS_IN_BROWSER': True,
'OPEN_DEVTOOLS_IN_DEBUG': True
}
- ALLOW_DOWNLOADS 允许文件下载。默认情况下处于禁用状态。
- ALLOW_FILE_URLS 启用 url。默认情况下处于禁用状态。
- OPEN_EXTERNAL_LINKS_IN_BROWSER. 在外部浏览器中打开链接。默认启用。
- OPEN_DEVTOOLS_IN_DEBUG 在调试模式下自动打开 devtools。默认启用。
更多详细内容请看官方文档
3.实现官网套壳
import webview
if __name__ == '__main__':
webview.settings = {
'ALLOW_DOWNLOADS': True,
'ALLOW_FILE_URLS': True,
'OPEN_EXTERNAL_LINKS_IN_BROWSER': True,
'OPEN_DEVTOOLS_IN_DEBUG': False
}
window = webview.create_window(title='Home | 同欣数字化落地', url='https://txodoo.cn/web', width=1360, height=768)
webview.start(private_mode=False, debug=True)
4.打包为exe
pyinstaller --noconsole --onefile --icon=favicon.ico --name txodoo main.py
-- 不显示控制台
--onefile 生成单个可执行文件
--name 指定生成的可执行文件名称
--icon 指定图标
版权归原作者 同欣精益 所有, 如有侵权,请联系我们删除。