pangao1990 / PPX

基于Python和JavaScript,一键生成macOS、Windows和Linux平台客户端应用程序
https://blog.pangao.vip/docs-ppx/
GNU Affero General Public License v3.0
232 stars 39 forks source link

linux下问题 #58

Open OwlElk opened 1 week ago

OwlElk commented 1 week ago

问题1:在webview的on_shown和on_loaded中调用System._window.evaluate_js会导致报错,且设置frameless模式后,在vue中设置的pywebview-drag-region无法生效,目前解决方法有两种,如下 1.更改linux下webview的GUIType为qt可避免该问题,在requirements.txt中添加 qtpy==2.4.2; sys_platform == 'linux' pyqt5==5.15.11; sys_platform == 'linux' PyQtWebEngine==5.15.7; sys_platform == 'linux' 2.更改webview包中util.py js_code = load_js_files(window, func_list, platform) 在该行上方添加一个大于0.5s左右的延时 time.sleep(0.5) 问题2:vue中justify-content: right;该css属性在qt下无法生效,解决方法如下: 1.改为flex-end可解决

pangao1990 commented 1 day ago

手动点赞

OwlElk commented 1 day ago

手动点赞

还有一些问题,我的项目需要将前端的数据调用window.pywebview.api.xxx推给python进行处理再通过httpx请求,在qt下当json数据过大时会报QJson:data too large的错误,目前没有解决,这个您有解决思路吗

pangao1990 commented 1 day ago

具体是什么场景,前端页面需要把大量数据通过调用window.pywebview.api.xxx的方式推送给后端呢?

OwlElk commented 1 day ago

就是一个包含很多base64图片的一个vue的ref变量,具体的话大概在60-70MB大小就会报错

OwlElk commented 1 day ago

ea2b8b0087c64e4bd8f4fe9b0c973315

pangao1990 commented 1 day ago

如果用Javascript–Python bridge方式有大小限制,那可以试试单独用FastAPI这类框架启动后端,用http方式和前端通信。

OwlElk commented 1 day ago

如果用Javascript–Python桥接方式有大小限制,那可以单独尝试用FastAPI类框架启动监听,用http方式和接口通信。

想到过这种方式,是可以接受的,也考虑过把部分数据量大的改为纯javascript进行处理和传输,我再多进行一些尝试有新方案咱们再交流