2016-08-16 6 views
0

In QWebKit hatte ich diesen Code:Wie kann ich den Download-Fortschritt in QWebEngine anzeigen?

QWebFrame * MainWindow::getQWebFrame(QString name) { 
    if (getView() && getView()->page() && getView()->page()->mainFrame()) { 
     QWebFrame * frameImLookingFor = getView()->page()->mainFrame(); 
      if (frameImLookingFor->frameName() == name) 
       return frameImLookingFor; 
     foreach(QWebFrame * frame, getView()->page()->mainFrame()->childFrames()) 
     { 
      frameImLookingFor = frame; at all 
      if (frame->frameName() == name) 
      { 
       frameImLookingFor = frame; 
       return frame; 
      } 
     } 
     return frameImLookingFor; 
    } 
    return NULL; 
} 

Dies ist, wie es in QWebEngine aussieht:

QWebEnginePage * MainWindow::getQWebFrame(QString name) { 
    if (getView()) { 
     QWebEnginePage *frameImLookingFor = getView()->page(); 
     if (frameImLookingFor->objectName() == name) 
      return frameImLookingFor; 
     foreach(const QWebEnginePage * frame, getView()->page()) 
     { 
      frameImLookingFor = frame; 
      if (frame->objectName() == name) 
      { 
       frameImLookingFor = frame; 
       return frame; 
      } 
     } 
     return frameImLookingFor; 
    } 
     return NULL; 
} 

Leider funktioniert es nicht. Es zeigt viele Fehler mit foreach. Zum Beispiel "'i': ist kein Mitglied von 'QForeachContainer". Gibt es überhaupt einen Code umzuschreiben, damit es so funktioniert wie vorher?

+0

Was hat diese Frage damit zu tun, irgendwelche Fortschritte zu zeigen? Du gibst nur Frames aus ... –

+0

Nun, in QWebKit war dieser für das Anzeigen von progress = \ verantwortlich Wenn ich alles in Kommentare setzte, zeigte es nichts, aber es wurde heruntergeladen –

Antwort

0

können Sie keine Subframes aus C++ iterieren. Wenn Sie sie iterieren wollen, müssen Sie etwas Javascript ausführen.

Wofür brauchen Sie diese Subframes überhaupt?

+0

Bevor es so funktionierte: Wenn es keine Datei gibt Computer, es zeigte einen roten Knopf. Wenn du es drückst, wird es gelb (der Download beginnt gerade) und dann wurde der Fortschritt des Downloads in% angezeigt. Nachdem der Download abgeschlossen wurde, wurde der Button grün. Jetzt wird es nur gelb, und wenn der Download abgeschlossen ist, musst du die Seite neu laden, damit die Schaltfläche grün wird. –

+0

Also hat die Seite selbst ein Javascript, das den Download-Fortschritt von etwas überwacht? –

+0

Ja. JS überwacht den Download-Fortschritt, aber QT hat es so angezeigt –

Verwandte Themen