PyQt6:权限策略标头错误:未启用原始试用控制功能:“卸载”

问题描述 投票:0回答:1

我正在尝试使用 PyQt6 及其小部件制作一个非常简单的网络浏览器。我只是想将 DuckDuckGo 显示为主要搜索引擎。问题如下:主窗口工作正常,但是它没有加载 DuckDuckGo 页面,控制台输出如下:

js: Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'unload'.

我在 stackOverflow 中搜索了 PyQt6 文档和类似问题。然而,这些都不起作用。尽管我尝试搜索有关它的信息,但我仍然不明白这个错误是什么意思。代码如下:

#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

        main_layout = QVBoxLayout()
        self.setLayout(main_layout) #Not used

        self.showMaximized() #Max window 

    def webSearchEngine(self): #Set DuckDuckGo as main browser 
        self.web = QWebEngineView()
        self.mainSearchEngine = QUrl("https://duckduckgo.com") #Display Url
        self.web.load(self.mainSearchEngine)
        
        

app = QApplication(sys.argv)

window = Window()
window.show() #Initiate window
window.webSearchEngine() #Initiate DuckDuckGo (Not working)
sys.exit(app.exec())
python pyqt pyqt6
1个回答
0
投票

我发现了错误。 'js: Permissions-Policy 标头错误:未启用原始试验控制功能:'interest-cohort'' 与我尝试加载的网页使用的 Permissions-Policy 标头相关,而不是我提供的 Python 代码。

此错误与“兴趣群组”功能有关,该功能是 Google FLoC(群组联合学习)计划的一部分,但需要明确的许可才能启用。

虽然我发现这不是导致 DuckDuckGo 不弹出的主要原因,但我研究了一下,似乎只要忽略这个错误就应该没问题。

我的搜索引擎没有弹出的原因是因为我忘记将其添加到主布局中,所以我做了以下事情:

from PyQt6.QtWidgets import *
from PyQt6.QtGui import QIcon
from PyQt6.QtCore import *
from PyQt6.QtWebEngineWidgets import *
import sys

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

        global main_layout
        main_layout = QVBoxLayout()
        self.setLayout(main_layout) #Not used

        self.showMaximized() #Max window 
    
    def on_load_finished(self,ok):
        if ok:
            print("Everything going ok")
        else:
            print("An error has occurred")


    def webSearchEngine(self): #Set DuckDuckGo as main browser 
        self.web = QWebEngineView()
        self.mainSearchEngine = QUrl("https://duckduckgo.com") #Display Url
        self.web.load(self.mainSearchEngine)
        self.web.loadFinished.connect(self.on_load_finished)
        main_layout.addWidget(self.web)
        
        

app = QApplication(sys.argv)

window = Window()
window.show() #Initiate window
window.webSearchEngine() #Initiate DuckDuckGo (Not working)
sys.exit(app.exec())

首先,我创建了一个“def on_load_finished()”函数,即使我没有在 python 窗口中看到,它也会检查 DuckDuckGo 是否正在加载。它给我带来了很好的价值,所以我发现我忘记将网络小部件添加到主布局中。

因此,只需将“main_layout”声明为全局变量,然后使用“addWidget()”函数来包含 Web 小部件,就可以正常工作了。

© www.soinside.com 2019 - 2024. All rights reserved.