2

リンクがクリックされるか、Qt の Webkit インスタンスでテキスト フィールドが変更されるたびに通知を受け取りたいです。イベントリスナーを に接続するにはどうすればよいQWebElementですか?

onchange各要素の/ハンドラーにJavascript を配置できることはわかっていますonclickが、よりクリーンなソリューションを探しています。

4

2 に答える 2

3

(Qt 4.6 の時点で) 唯一の方法は JavaScript のようです。

この WebKit の TODO リストによると、QWebElement::connectEvent()メソッドを追加する予定です。

于 2010-05-28T07:42:28.697 に答える
2

この関数の使用:

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);
于 2010-05-29T04:23:26.427 に答える