gpt4 book ai didi

qt - 处理QWebView/QWebPage中的错误

转载 作者:行者123 更新时间:2023-12-03 07:41:03 26 4
gpt4 key购买 nike

我希望获得更多信息,而不仅仅是success = false中的loadFinished(这通常是取消的负载)。从该站点上的文档和其他文章中,我收集到了我应该将QWebPage子类化并重写extension()方法来处理ErrorPageExtension的方法。

但是,我无法使其正常工作,即无论我尝试哪种扩展方法都不会被调用。我可能正在做一些非常愚蠢的事情,但是没有看到。基本上我的课看起来像这样:

class MyWebPage : public QWebPage
{
Q_OBJECT

public:

MyWebPage(QObject* parent = 0) : QWebPage(parent) {}

virtual bool extension(Extension extension,
const ExtensionOption* option = 0,
ExtensionReturn* output = 0)
{
// blah
}

virtual bool supportsExtension(Extension extension)
{
// blah
}
};

方法的实现不是问题,我在那里有一个断点,而且它从未被调用过。我创建一个实例
MyWebPage* page = new MyWebPage(this);

mUi.WebView->setPage(page);

我对QWebView中QWebPage对象的生存时间不确定,但是从我的测试看来,QWebPage始终保持不变,只是加载新内容。因此,我认为我应该将页面仅提供给QWebView,没有看到其他方法来使用其派生类。但是,当通过WebView或直接通过页面的大型机加载伪造的URL,不存在的本地文件或不支持的内容时,我永远不会收到带有ErrorPageExtension信息的 call 。

任何帮助表示赞赏。这是使用Qt 4.8.2。

最佳答案

有一个错误:

...
virtual bool supportsExtension(Extension extension) const // const!!!
{
return QWebPage::ErrorPageExtension === extension;
}
...

您忘记复制 const 修饰符。

关于qt - 处理QWebView/QWebPage中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14528038/

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