リンクがクリックされるか、Qt の Webkit インスタンスでテキスト フィールドが変更されるたびに通知を受け取りたいです。イベントリスナーを に接続するにはどうすればよいQWebElement
ですか?
onchange
各要素の/ハンドラーにJavascript を配置できることはわかっていますonclick
が、よりクリーンなソリューションを探しています。
リンクがクリックされるか、Qt の Webkit インスタンスでテキスト フィールドが変更されるたびに通知を受け取りたいです。イベントリスナーを に接続するにはどうすればよいQWebElement
ですか?
onchange
各要素の/ハンドラーにJavascript を配置できることはわかっていますonclick
が、よりクリーンなソリューションを探しています。
(Qt 4.6 の時点で) 唯一の方法は JavaScript のようです。
この WebKit の TODO リストによると、QWebElement::connectEvent()
メソッドを追加する予定です。
この関数の使用:
void QWebView::linkClicked ( const QUrl & url ) [signal]
このシグナルは、ユーザーがリンクをクリックし、ページのlinkDelegationPolicyプロパティが、指定されたURLのリンク処理を委任するように設定されている場合に発行されます。
次のようにHTMLコードにアクセスできます。
QString Widget::evalJS(const QString &js)
{
QWebFrame *frame = ui->webView->page()->mainFrame();
return frame->evaluateJavaScript(js).toString();
}
evalJS(QString("document.forms[\"f\"].text.value = \"%1\";").arg(fromText));
evalJS(QString("document.forms[\"f\"].langSelect.value = \"%1\";").arg(langText));
evalJS(QString("translate()"));
QString from = evalJS("document.forms[\"f\"].text.value");
QString translation = evalJS("document.forms[\"f\"].translation.value");
ui->textEditTo->setText(translation);