2016-06-27 2 views
0

Я пытаюсь реализовать отображение веб-страницы в Qt. Я решил использовать Qt WebEngine для достижения своей задачи. Вот что я сделал:Функция Qt runJavaScript() не выполняет код JavaScript

  • Написал образец веб-страницы, состоящей из пустой формы.
  • Написал JS-файл с помощью всего лишь API для создания переключателя внутри формы.

В моем коде, это выглядит следующим образом:

View = new QWebEngineView(this); 
// read the js file using qfile 
file.open("path to jsFile"); 
myJsApi = file.Readall(); 
View->page()->runjavascript (myjsapi); 
View->page()->runjavascript ("createRadioButton(\"button1\");"); 

Я считаю, что функция runJavaScript() не оказывает никакого влияния на веб-странице. Я могу видеть веб-страницу в окне вывода, но переключателя, которого я ожидал, нет. Что я делаю не так?

ответ

3

Я думаю, вам нужно будет подключить сигнал loadFinished(bool) вашего page() к слоту, а затем выполнить runJavaScript() в этом слоте.

void yourClass::mainFunction() 
{ 
    View = new QWebEngineView(this); 

    connect(View->page(), SIGNAL(loadFinished(bool)), this, SLOT(slotForRunJS(bool))); 
} 

void yourClass::slotForRunJS(bool ok) 
{ 
    // read the js file using qfile 
    file.open("path to jsFile"); 
    myJsApi = file.Readall(); 
    View->page()->runJavaScript(myjsapi); 
    View->page()->runJavaScript("createRadioButton(\"button1\");"); 
} 
+0

Ох .. Спасибо тонну. Это работало! – prabhu

+0

Рад это слышать! Не стесняйтесь принимать ответ, если он вам подходит, так как он может помочь другим людям. – IAmInPLS

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