查看 QtWebKit API 中的信号,我找不到任何我认为正在寻找的东西。
QWebView
linkClicked()
似乎是最接近的,但重置按钮不是链接,绝对不会指向网址。QWebPage
contentsChanged()
,contentsChanged()
,contentsChanged()
,{{1} }。QWebFrame
QWebElement
我希望在重置按钮中点击一下,以便在清除之前将数据存储在表单中,以便以后可以恢复。
目前,我确实设法将按钮检索为selectionChanged()
个QWebElementCollection
个对象,我可以修改它们,但我不知道如何让它们在点击时发送信号,或类似的东西。
QWebElement
答案 0 :(得分:0)
嗯,我得到了它的工作,虽然我不认为这是最好的方法:
bool EventFilter::eventFilter(QObject* object, QEvent* event)
{
if (event->type() == QEvent::MouseButtonRelease)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() == Qt::LeftButton)
{
QWebView *view = dynamic_cast<QWebView*>(object);
QPoint pos = view->mapFromGlobal(mouseEvent->globalPos());
QWebFrame *frame = view->page()->frameAt(mouseEvent->pos());
if (frame != NULL)
{
// Get the existing reset buttons.
QWebElementCollection inputResets = frame->documentElement().findAll("input[type=reset]");
inputResets += frame->documentElement().findAll("button[type=reset]");
// Check if any of them is at the clicked position.
foreach(QWebElement element, inputResets)
{
if (element.geometry().contains(pos))
{
qDebug() << "Clicked element tag:" << element.localName();
return QObject::eventFilter(object, event);
}
}
}
}
}
return QObject::eventFilter(object, event);
}
答案 1 :(得分:0)
您可以使用Qt WebKit Bridge完成此操作。