首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理QWebView / QWebPage中的错误

处理QWebView / QWebPage中的错误
EN

Stack Overflow用户
提问于 2013-01-26 02:23:40
回答 1查看 2.2K关注 0票数 2

我希望获得更多的信息,而不仅仅是loadFinished中的success = false (这通常只是一个取消的加载)。从这个站点上的文档和其他帖子中,我认为我应该子类QWebPage并重写extension()方法来处理ErrorPageExtension。

然而,我不能让它工作,也就是说,无论我怎么尝试,我的扩展方法都不会被调用。我可能正在做一些非常愚蠢的事情,但却没有意识到。基本上我的类是这样的:

代码语言:javascript
复制
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
  }  
};

方法的实现不是问题,我在那里有一个断点,它永远不会被调用。我创建了一个这样的实例

代码语言:javascript
复制
MyWebPage* page = new MyWebPage(this);

mUi.WebView->setPage(page);

我对QWebView中QWebPage对象的生命周期有点不确定,但从我的测试来看,QWebPage似乎总是保持相同的实例,只是加载新的内容。因此,我假设我应该简单地将我的页面提供给QWebView,我没有看到其他方法让它使用我的派生类。但是当加载虚假的ErrorPageExtension、不存在的本地文件或不受支持的内容时,无论是通过WebView还是直接通过页面的大型机,我都不会收到带有URL信息的调用。

任何帮助都是非常感谢的。这是使用Qt 4.8.2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-26 05:03:57

这里有一个小错误:

代码语言:javascript
复制
...
virtual bool supportsExtension(Extension extension) const // const!!!
{
    return QWebPage::ErrorPageExtension === extension;
}
...

您忘记复制常量修改器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14528038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档