我在qtwebkit qwebview中检测到点击的元素时遇到了问题。
不知道为什么,但在查找属性时,单击文档中的文本
时我什么也得不到void APP_Orders::contextMenuEvent(QContextMenuEvent *event)
{
QWebHitTestResult hit = page()->mainFrame()->hitTestContent(event->pos());
QWebElement hitElement = hit.element();
QString ctx = hitElement.attribute("ctx","none");
while(ctx == "none")
{
hitElement = hitElement.parent();
ctx = hitElement.attribute("ctx","none");
}
qDebug() << ctx;
}
在我的文档中,我的身体上有一个ctx属性。 无论我点击哪里,我都会在调试中得到正文的ctx属性,这是预期的行为,但是当我点击文本时,看起来它不在文档中...应用程序在无限循环后崩溃。即使我查看xml内容或父母,祖父母grangranparents xml内容总是空字符串...
知道为什么???
答案 0 :(得分:1)
好的,一位同事发现了这种解决方法。如果有人需要它,分享它......
void APP_Orders::contextMenuEvent(QContextMenuEvent *event)
{
QWebHitTestResult hit = page()->mainFrame()->hitTestContent(event->pos());
QWebElement hitElement = hit.element();
QString ctx = hitElement.attribute("ctx","none");
if(ctx == "")
{
hitElement = hit.enclosingBlockElement();
ctx = hitElement.attribute("ctx","none");
}
while(ctx == "none")
{
hitElement = hitElement.parent();
ctx = hitElement.attribute("ctx","none");
}
qDebug() << ctx;
}