2016-08-16 2 views
0

В QWebKit у меня был этот код:Как показать прогресс загрузки в QWebEngine?

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; 
} 

Вот как это выглядит в QWebEngine:

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; 
} 

К сожалению, это не работает. Он показывает много ошибок с foreach. Например, «i»: не является членом «QForeachContainer». Нужно ли вообще переписать этот код, чтобы он работал так, как раньше?

+0

Что этот вопрос имеет отношение к показу какого-либо прогресса? Вы просто перечисляете фреймы ... –

+0

ну, в QWebKit это отвечало за показ progress = \ Когда я помещал все в комментарии, он ничего не показывал, но загружал –

ответ

0

QWebEngine не позволяет вам перебирать подкадры из C++. Если вы хотите их повторить, вам нужно запустить javascript.

Для чего вам нужны эти подкадры?

+0

Прежде чем он работал так: Если на файле нет файла компьютер, он показал красную кнопку. Когда вы нажимаете его, он становится желтым (загрузка вот-вот начнется), а затем он покажет ход загрузки в%. После того, как загрузка была завершена, кнопка стала зеленой. Теперь он просто становится желтым, и когда загрузка завершена, вам нужно перезагрузить страницу, чтобы кнопка стала зеленой. –

+0

Итак, на самой странице есть javascript, который контролирует процесс загрузки чего-то? –

+0

Да. JS-мониторы загружают прогресс, но QT показал его таким образом. –

Смежные вопросы