gpt4 book ai didi

python - 使用 QWebEngine 在同一窗口中打开任何链接(甚至是_blank)

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:55 25 4
gpt4 key购买 nike

我有这段代码应该访问/跟踪我在同一窗口中单击的任何链接,即使它通常会在新窗口中打开。这将不必右键单击然后从上下文菜单中选择“关注链接”。由于某种原因,它没有按预期工作。

代码如下:

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QDesktopServices
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage


class WebEnginePage(QWebEnginePage):
def acceptNavigationRequest(self, url, _type, isMainFrame):
if _type == QWebEnginePage.NavigationTypeLinkClicked:
return True
return QWebEnginePage.acceptNavigationRequest(self, url, _type, isMainFrame)

class HtmlView(QWebEngineView):
def __init__(self, *args, **kwargs):
QWebEngineView.__init__(self, *args, **kwargs)
self.setPage(WebEnginePage(self))

if __name__ == '__main__':
import sys

app = QApplication(sys.argv)
w = HtmlView()
w.load(QUrl("https://yahoo.com"));
w.show()
sys.exit(app.exec_())

最佳答案

如果您希望链接始终在同一个窗口中打开,您可以重新实现 createWindow方法,以便它返回相同的 View :

class HtmlView(QWebEngineView):
def createWindow(self, wintype):
return self

wintype 参数提供有关正在请求哪种类型的窗口的信息。您可能希望以不同方式对待对话窗口。

请注意,您的示例中的 WebEnginePage 子类不需要此工作。

关于python - 使用 QWebEngine 在同一窗口中打开任何链接(甚至是_blank),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47893838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com