Python 在pyqt应用程序中关闭不起作用

Python 在pyqt应用程序中关闭不起作用,python,pyqt,closures,Python,Pyqt,Closures,要运行代码,请执行以下操作: 要放入script.py的代码: script.py的实际输出: creating interceptor for host: www.google.com creating interceptor for host: duckduckgo.com duckduckgo.com https://www.google.com/ duckduckgo.com https://duckduckgo.com/ creating interceptor for host

要运行代码,请执行以下操作:

要放入script.py的代码:

script.py的实际输出:

creating interceptor for host: www.google.com
creating interceptor for host: duckduckgo.com
duckduckgo.com https://www.google.com/
duckduckgo.com https://duckduckgo.com/
creating interceptor for host: www.google.com
creating interceptor for host: duckduckgo.com
www.google.com https://www.google.com/
duckduckgo.com https://duckduckgo.com/
script.py的预期输出:

creating interceptor for host: www.google.com
creating interceptor for host: duckduckgo.com
duckduckgo.com https://www.google.com/
duckduckgo.com https://duckduckgo.com/
creating interceptor for host: www.google.com
creating interceptor for host: duckduckgo.com
www.google.com https://www.google.com/
duckduckgo.com https://duckduckgo.com/
我希望请求打印的是www.google.com主机,而不是duckduckgo.com

脚本将打印更多的输出:请求+不重要的qt/ssl错误

我熟悉以下问题:

我认为您正在用第二个拦截器覆盖第一个拦截器,因为根据Qt文档:

QWebEngineProfile类提供由多个页面共享的web引擎配置文件

编辑,因为此答案可能不够:
您可以使用
QWebEnginePage(QWebEngineProfile*profile,QObject*parent=Q\u NULLPTR)
构造函数提供不同于默认配置文件的配置文件。这样,每页将有一个单独的拦截器。

谢谢您的帮助!我照你说的做了,但还是不行。我换了线

为此:

self.web\u view\u ui=QWebEngineView()
self.profile=QWebEngineProfile()
self.page=QWebEnginePage(self.profile)
self.web\u view\u ui.setPage(self.page)
self.web\u view\u ui.load(qurl)
结果是,调用了错误的构造函数:

文件:

但是我想要

QWebEnginePage(QWebEngineProfile *profile, QObject *parent = Q_NULLPTR)
那么换成

self.page = QWebEnginePage(self.profile, None)
解决了这个案子

QWebEnginePage(QWebEngineProfile *profile, QObject *parent = Q_NULLPTR)
self.page = QWebEnginePage(self.profile, None)