You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt6构建简易浏览器加载DuckDuckGo遇Permissions-Policy错误

问题分析与解决

错误含义说明

控制台输出的js: Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'unload'.是DuckDuckGo服务器的HTTP响应头问题:服务器尝试启用unload这个处于Origin Trial(实验性特性试用)阶段的权限策略,但PyQt6内置的WebEngine内核并未支持该特性。这个错误只是控制台警告,并非页面无法显示的根本原因。

页面无法显示的核心原因

代码中创建了QWebEngineView控件,但未将其添加到窗口的布局中,导致控件从未被渲染到界面上,自然看不到DuckDuckGo页面。

修复后的代码

# importing PyQt6 and dependencies
from PyQt6.QtWidgets import *
from PyQt6.QtGui import QIcon
from PyQt6.QtCore import *
from PyQt6.QtWebEngineWidgets import QWebEngineView
import sys

# Main Window Class
class Window(QWidget):
    def __init__(self): # Constructor
        super().__init__()
        self.resize(300,300) # Size
        self.setWindowTitle("Web Browser") # Title

        # 将布局设为实例变量,方便后续添加控件
        self.main_layout = QVBoxLayout()
        self.setLayout(self.main_layout)

        self.showMaximized() # Max window
        # 初始化搜索引擎视图
        self.webSearchEngine()

    def webSearchEngine(self): # Set DuckDuckGo as main browser 
        self.web = QWebEngineView()
        self.mainSearchEngine = QUrl("https://duckduckgo.com") # Display Url
        self.web.load(self.mainSearchEngine)
        # 将Web视图添加到窗口布局中
        self.main_layout.addWidget(self.web)

app = QApplication(sys.argv)

window = Window()
window.show() 
sys.exit(app.exec())

关键修改点

  • 将main_layout改为实例变量self.main_layout,确保后续方法能访问到布局对象
  • 在webSearchEngine中调用self.main_layout.addWidget(self.web),把Web视图控件添加到窗口布局,使其显示在界面上
  • 将webSearchEngine()的调用移到__init__方法内,确保窗口初始化时就加载页面

内容的提问来源于stack exchange,提问作者dann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:08:22