【问题标题】:How to use statusChanged in WebView ( QtQuick 2.0 and QtWebKit 3)?如何在 WebView(QtQuick 2.0 和 QtWebKit 3)中使用 statusChanged?
【发布时间】:2012-12-27 15:28:06
【问题描述】:

在 QtQuick 1.0 和 QtWebKit 1.0 中,我可以在页面准备好后执行 onLoadFinished 函数。分别在版本2和3中怎么做?

文档中有一个 statusChanged。我不明白如何使用它。

以前我有:

import QtQuick 2.0
import QtWebKit 3.0

WebView {
    width: 700
    height: 800

    url:"http://www.yahoo.com"
    settings.developerExtrasEnabled : true


    id: webView
    objectName: "myWebView"




    onLoadFinished: evaluateJavaScript("window.setTimeout('window.location.reload()',5000);")

}

但它显示错误:
无法分配给不存在的属性“onLoadFinished”

【问题讨论】:

    标签: c++ qml qtwebkit qt-quick


    【解决方案1】:

    您必须使用 onLoadingChanged 信号和 loadRequest 对象来检查确切的状态: http://qt-project.org/doc/qt-5.0/qtwebkit/qml-qtwebkit3-webview.html#onLoadingChanged-signal

    import QtQuick 2.0
    import QtWebKit 3.0
    
    WebView {
        width: 700
        height: 800
    
        url:"http://google.com"
    
        id: webView
        objectName: "myWebView"
    
        onLoadingChanged: {
            console.log("onLoadingChanged: status=" + loadRequest.status);
            if (loadRequest.status == WebView.LoadStartedStatus) 
                console.log("Loading started...");
            if (loadRequest.status == WebView.LoadFailedStatus) {
               console.log("Load failed! Error code: " + loadRequest.errorCode);
               if (loadRequest.errorCode === NetworkReply.OperationCanceledError)
                   console.log("Load cancelled by user");
            } 
            if (loadRequest.status == WebView.LoadSucceededStatus) 
                console.log("Page loaded!");
        }
    
    }
    

    onLoadingChanged 信号在任何页面加载开始、结束或失败时出现。 loadRequest 上有各种只读参数:

    • url:正在加载的资源的位置。
    • status:反映三种负载状态之一:LoadStartedStatus、LoadSucceededStatus 或 LoadFailedStatus。请参阅 WebView::LoadStatus。
    • errorString:加载错误的描述。
    • errorCode:HTTP 错误代码。
    • errorDomain:高级错误类型,NetworkErrorDomain、HttpErrorDomain、InternalErrorDomain、DownloadErrorDomain 或 NoErrorDomain 之一。请参阅 WebView::ErrorDomain。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多