hitTestContent在QtWebkit中的文本上没有返回任何内容

时间:2013-10-28 12:52:56

标签: qt contextmenu qt5 qwebview qwebkit

我在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内容总是空字符串...

知道为什么???

1 个答案:

答案 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;
}