使用pywebview套壳odoo

同欣精益 2024-08-14 08:03:02 阅读 54

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 -  是否可以调整窗口大小。默认值为 Truefullscreen -  以全屏模式启动。默认值为 Falsemin_size -  指定最小窗口大小的 (width, height) 元组。默认值为 200x100hidden -   创建一个默认隐藏的窗口。默认值为 Falseframeless -  创建一个无框窗口。默认值为 False。easy_drag -  无框窗口的简单拖动模式。可以通过拖动任何点来移动窗口。默认值为 True。请注意,easy_drag对普通窗口没有影响。shadow -  添加窗口阴影。默认值为 False。仅限 Windows。focus -  如果为 False,则创建一个不可聚焦的窗口。默认值为 True。minimized -  最小化显示窗口maximized -  显示窗口最大化on_top -  将窗口设置为始终位于其他窗口的顶部。默认值为 False。confirm_close -  是否显示窗口关闭确认对话框。默认值为 Falsebackground_color -  加载 WebView 之前显示的窗口的背景颜色。指定为十六进制颜色。默认值为白色。transparent - 创建一个透明窗口。在 Windows 上不受支持。默认值为 False。text_select - 启用文档文本选择。默认值为 Falsezoomable -  启用文档缩放。默认值为 Falsedraggable - 启用图像和链接对象拖动。默认值为 False server=http.BottleServer, server_argsvibrancy - 启用 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 指定图标



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。