Qt 如何获取发送者信号的发送者或如何知道 QWebEngineView 的加载启动网址

Qt How to get sender of sender signal or how to know loadStarted url of QWebEngineView?

本文关键字:发送者 何知道 QWebEngineView 启动 加载 信号 何获取 获取 Qt      更新时间:2023-10-16

QWebEngineView 有 signal void loadStarted()。当它从QWebEnginePage接收时发出此信号。QWebEnginePage从QWebEnginePagePrivate覆盖了这个函数,它是void loadStarted(const QUrl &provisionalUrl,bool isErrorPage = false),但在QWebEnginePage类参数暂定URL标记为Q_UNUSED(),但我想知道它的值。我该怎么做?

如果您必须拦截导航请求并按导航类型过滤它们,您能做的最好的事情就是覆盖 QWebEnginePage::acceptNavigationRequest() 虚拟函数。

https://doc.qt.io/qt-5/qwebenginepage.html#acceptNavigationRequest

class NavigationRequestOverride : public QWebEnginePage
{
public:
    NavigationRequestOverride(QObject* parent) : QWebEnginePage(parent) {}
protected:
    virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame)
    {
       // Here goes your logic
    }
};