0

我无法在 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 内容始终是一个空字符串...

知道为什么吗???

4

1 回答 1

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;
}
于 2013-10-28T13:02:00.600 回答