QWebView で QAction の signal trigger() を JS 関数に接続してみました。だから、私のコード:
...
QWebView *webView = new QWebView;
QAction *buttonAction = new QAction;
webView->load(QUrl(":/example.html");
...
connect(buttonAction, SIGNAL(triggered()), this, SLOT(alert()));
...
スロット機能:
void MainWindow::alert()
{
webView->page()->mainFrame()->evaluateJavaScript(QString("myFunction();"));
}
example.html では:
<script type="text/javascript">
function myFunction()
{
alert("I am an alert box!");
}
</script>
そのため、アプリケーションは正常に起動しますが、ボタンを押していると、アラートが表示されずにアプリケーションがエラーで落ちます。また、デバッグにメッセージがあります:
QWaitCondition: Destroyed while threads are still waiting
何か問題でもありますか?