首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:如何接收由QWebElement对象触发的事件?

Qt:如何接收由QWebElement对象触发的事件?
EN

Stack Overflow用户
提问于 2010-05-28 04:47:29
回答 2查看 1.9K关注 0票数 2

每当在Qt中的Webkit实例中单击链接或更改文本字段时,我都希望收到通知。如何将事件侦听器连接到QWebElement

我知道我可以在每个元素的onchange / onclick处理程序上放置一些Javascript,但我正在寻找一种更简洁的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-29 12:23:26

使用此函数:

代码语言:javascript
复制
void QWebView::linkClicked ( const QUrl & url )   [signal]

只要用户单击链接,并且页面的linkDelegationPolicy属性设置为委托指定url的链接处理,就会发出此信号。

您可以按如下方式访问HTML代码:

代码语言:javascript
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2010-05-28 15:42:29

看起来唯一的方法(从Qt4.6开始)是JavaScript。

根据this TODO list for WebKit的说法,有计划添加一个QWebElement::connectEvent()方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2924786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档