QT:QWebelementオブジェクトによって解雇されたイベントを受信するにはどうすればよいですか?
-
05-10-2019 - |
質問
QTのWebKitインスタンスでリンクがクリックされたり、テキストフィールドが変更されたりするたびに通知を受信したい。イベントリスナーをaに接続するにはどうすればよいですか QWebElement
?
私は各要素にJavaScriptを置くことができることを知っています onchange
/ onclick
ハンドラーですが、よりクリーンなソリューションを探しています。
解決
この関数の使用:
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);
他のヒント
(QT 4.6の時点で)唯一の方法はJavaScriptのように見えます。
によると WebKitのこのTODOリスト, 、aを追加する計画があります QWebElement::connectEvent()
方法。
所属していません StackOverflow