2016-06-27 3 views
0

を実行しません。私は自分の仕事を達成するためにQt WebEngineを使いました。私がしたことは次のとおりです。Qtの機能runJavaScriptは()私はQtの中で、Webページの表示を実装しようとしていますJavaScriptコード

  • 空のフォームからなるサンプルWebページを書きました。
  • フォーム内のラジオボタンを作成するだけのAPIとJSファイルを書きました。私のコードで

、それは次のようになります。

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()機能は、Webページには影響しないことがわかります。出力ウィンドウでWebページを見ることができますが、私が期待したラジオボタンは存在しません。私は間違って何をしていますか?

答えて

3

page()の信号loadFinished(bool)をスロットに接続し、このスロットに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

関連する問題