QT:QWebelementオブジェクトによって解雇されたイベントを受信するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2924786

質問

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() 方法。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top