我在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内容或父母,祖父母格兰祖父母XML内容总是一个空字符串......
知道为什么吗???
好的,一位同事找到了这个解决方法。 如果有人需要,请分享它...
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;
}