鱼C论坛

 找回密码
 立即注册
查看: 2116|回复: 4

QWebEngineView-> setHtml 渲染html代码问题

[复制链接]
发表于 2022-8-25 15:19:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 haiyingbs 于 2022-8-26 10:40 编辑

我做了一个项目需要用到setHtml 渲染程序生成的html.
生成的html少时,可能正常渲染。但是如果生成多了就一点反应都没有,就像没有触发这个事件一样。
我的理解应该是QWebEngineView-> setHtml 不能渲染过多的html代码。如果多了,直接不进行操作。
有那位大神知道是不是这个原因,有什么办法可以解决让setHtml渲染更多的html代码。


找到问题了:
无法显示大于 2 MB 的内容,因为将提供的 HTML 转换为百分比编码并data在其前面放置 : 以创建导航到的 URL。因此,提供的代码成为超过 Chromium 设置的 2 MB 限制的 URL。如果内容太大,loadFinished()则用 触发信号success=false
有啥办法解决吗?



python代码如下:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import os
from PyQt5.QtWebEngineWidgets import QWebEngineView


class Window(QMainWindow):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.qwebengine = QWebEngineView()
        #多的html code,无法显示,代码没问题
         html="""
       多的html 代码,无法显示,代码没问题,在chrome游览器里可以正常显示,上万行的。本来想附件把html传上来的,但没有找到上传入口。

        """

        #少的就可以正常显示
        html1="""
        少的html 代码,无法显示,代码没问题
        """
        self.qwebengine.setHtml(html1,QUrl('file://'))
        self.setCentralWidget(self.qwebengine)


app = QApplication(sys.argv)
screen = Window()
screen.showMaximized()
sys.exit(app.exec_())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-25 16:49:01 | 显示全部楼层
问题太空洞了,啥都没有,至少来个能复现问题的代码吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-25 18:17:27 | 显示全部楼层
python代码如下:

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import os
from PyQt5.QtWebEngineWidgets import QWebEngineView


class Window(QMainWindow):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.qwebengine = QWebEngineView()
        #多的html code,无法显示,代码没问题
         html="""
       多的html 代码,无法显示,代码没问题,在chrome游览器里可以正常显示,上万行的。本来想附件把html传上来的,但没有找到上传入口。

        """

        #少的就可以正常显示
        html1="""
        少的html 代码,无法显示,代码没问题
        """
        self.qwebengine.setHtml(html1,QUrl('file://'))
        self.setCentralWidget(self.qwebengine)


app = QApplication(sys.argv)
screen = Window()
screen.showMaximized()
sys.exit(app.exec_())


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-25 23:03:45 | 显示全部楼层
haiyingbs 发表于 2022-8-25 18:17
python代码如下:

from PyQt5.QtCore import *


可以加载的呀,要等好一会儿,可能是因为加载的html代码需要其他的外部资源但是又访问不了的原因

屏幕截图 2022-08-25 230408.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-26 08:55:15 | 显示全部楼层
本帖最后由 haiyingbs 于 2022-8-26 09:13 编辑
hrpzcf 发表于 2022-8-25 23:03
可以加载的呀,要等好一会儿,可能是因为加载的html代码需要其他的外部资源但是又访问不了的原因


少的是可以加载的,但是多的就加载不了了
但是2W多行的代码就加载不了了
比如这个页面的代码:https://www.exfresh.com.cn/d.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 14:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表