2016-09-26 4 views
0

Qt 신호와 슬롯을 사용하고 있습니다. 다음 신호 슬롯 호출을 사용합니다. 신호 loadFinished이 방출되면void QWebView :: loadFinished (bool ok) ok 항상 false

connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoadNotification(bool))); 

는 슬롯 finishedLoadNotification 호출된다. finishedLoadNotification에서 변수 'ok'는 항상 false입니다. 'ok'의 값이 false로 설정되는 곳을 알고 싶습니다. 코드에서 'ok'값을 찾을 수 없었습니다. 변수 'ok'가 false로 설정된 곳을 찾는데 도와주세요. Qt는 docs에서

답변

0

:로드가 성공 또는 오류가 발생했는지 여부를

확인이 표시됩니다.

따라서이 변수는 신호가 QWebView에 의해 방출 될 때 설정됩니다. ok = false 인 경우 오류가 발생 했으므로 오류를 처리해야합니다. ok = true이라면 모든 것이 잘되었음을 의미합니다.

당신이 당신의 오류에 대한 자세한 내용은 여기에서 볼 수 있습니다 얻고 싶은 경우에

는 :

How to get detailed error message when QTWebKit fails to load a page?

0

부울 그냥 오류가 발생 여부를 의미한다. 웹 페이지의로드 진행률을 처리하여 올바른로드 진행률을 확인할 수 없습니다. loadProgress(int progress)을 자신의 슬롯에 연결하여 사용하십시오 :

void MyCalss::handleProgress(int progress) { 
    bool loaded = (progress == 100); 
    if (_loaded != loaded) { // State changed, let's emit a signal 
     _loaded = loaded; 
     emit webViewLoaded(loaded); 
    } 
} 
+0

신호는 QT 프레임 워크에서 방출됩니다. 우리는 코드에서 신호를 방출하지 않습니다. 그러므로 우리는 ok의 값이 false로 설정된 곳을 알 수 없습니다. – mspms