【问题标题】:Pyqt5 QWebEngineView and QWebEnginePagePyqt5 QWebEngineView 和 QWebEnginePage
【发布时间】:2018-03-11 16:29:17
【问题描述】:

谁能解释一下PyQt5中QWebEngineView和QWebEnginePage的用法。 我想拦截所有请求,从而覆盖属于 QWebEnginePage 类的 acceptNavigationRequest() 方法。但我没有使用任何 QWebEnginePage 对象,而是直接实现 QWebEngineView。

我有一个输入字段,我正在使用此方法从该字段加载 URL。

def loadURL(self):
    self.load(QUrl(self.URL))
    print('Loading ', self.URL)

但是从加载页面跟随的链接是我需要单独处理的。我该怎么做。

【问题讨论】:

  • 唯一的方法是继承QWebEnginePage并重新实现acceptNavigationRequest
  • 如何在QwebEngineView类中使用QWebEnginePage对象?
  • 请在此处查看我的答案:stackoverflow.com/questions/3188513/…

标签: python pyqt pyqt5 qtwebengine


【解决方案1】:

您需要创建QWebEnginePage 的子类,重新实现acceptNavigationRequest

class WebEnginePage(QWebEnginePage):

  def acceptNavigationRequest(self, qUrl, requestType, isMainFrame):
    # return True to allow navigation, False to block it
    return True

现在在您的QWebEngineView 中使用setPage 将您的新课程分配为页面:

class WebEngineView(QWebEngineView):

  def __init__(self, parent = None):
    super().__init__(parent)
    self.setPage(WebEnginePage(self))

【讨论】:

    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2017-12-29
    相关资源
    最近更新 更多