每当在Qt中的Webkit实例中单击链接或更改文本字段时,我都希望收到通知。如何将事件侦听器连接到QWebElement?
我知道我可以在每个元素的onchange / onclick处理程序上放置一些Javascript,但我正在寻找一种更简洁的解决方案。
发布于 2010-05-29 12:23:26
使用此函数:
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-28 15:42:29
看起来唯一的方法(从Qt4.6开始)是JavaScript。
根据this TODO list for WebKit的说法,有计划添加一个QWebElement::connectEvent()方法。
https://stackoverflow.com/questions/2924786
复制相似问题