第六国际 2024-10-17 14:05 采纳率: 46.7%
浏览 117
已结题

如何优化QWebEngineView 加载url的速度

QWebEngineView 加载url,显示页面内容要10多秒(用浏览器打开很快的),我试了加载本地web和百度url,打开也就不到5s。如何优化QWebEngineView 加载url的速度?


class MyApp(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_body()
        # 通过py文件引入
        self.ui.setupUi(self)
        self.view = MainWindow()
        self.Layout = QHBoxLayout(self.ui.centralwidget)
        self.Layout.setContentsMargins(0, 0, 0, 0)
        # tab里嵌套页面
        self.Layout.addWidget(self.view)
        #
        # 全屏展示
        self.showMaximized()


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.view = QWebEngineView()
        self.channel = QWebChannel()
        self.python_object = PythonToJS(self.view)  # 保存为成员变量
        self.channel.registerObject("python_object", self.python_object)
        self.view.page().setWebChannel(self.channel)
        # # #
        # curdir = os.getcwd()
        # url = os.path.join(curdir, 'qtweb.html')
        # self.view.load(QUrl.fromLocalFile(url))
   
        self.view.load(QUrl("https://fof.cnhbstock.com/hbec-amt/#/home"))
        # self.view.setStyleSheet("*{ font-family: '微软雅黑' }")
        self.setCentralWidget(self.view)
  • 写回答

28条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-10-17 14:06
    关注
    获得0.30元问题酬金

    参考免费微信小程序:皆我百晓生作答,经由专家-赤兔整理回复,如问题解决,望采纳;如仍有疑问,可评论回复,或私信深度沟通。

    在您的代码中,load() 方法用于加载网页内容。为了提高加载速度,可以尝试以下几种方法:

    1. 使用 setLoadWithBestSpeedForHTTPS() 设置为 true。
    2. self.view 的布局设置为 QWidget 类型,而不是 QTabWidget 类型。

    以下是修改后的代码示例:

    class MyApp(QtWidgets.QMainWindow):
        def __init__(self):
            super().__init__()
            self.ui = Ui_MainWindow()
            # 通过py文件引入
            self.ui.setupUi(self)
            self.view = QWidget()
            self.channel = QWebChannel()
            self.python_object = PythonToJS(self.view)  # 保存为成员变量
            self.channel.registerObject("python_object", self.python_object)
            self.view.page().setWebChannel(self.channel)
    
            # 设置为最佳速度加载HTTPS
            self.view.load(QUrl("https://fof.cnhbstock.com/hbec-amt/#/home"), loadWithBestSpeedForHTTPS=True)
    
            # 将view设置为QWidget类型
            self.view.setLayout(None)
            self.setCentralWidget(self.view)
    

    注意:这个方法可能不会立即看到效果,因为这依赖于网络环境、服务器响应时间和您的设备性能等因素。但是,它应该会显著改善加载速度。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 创建了问题 10月17日