【问题标题】:hitTestContent returns nothing on text in QtWebkithitTestContent 在 QtWebkit 中的文本上不返回任何内容
【发布时间】:2013-10-28 12:52:55
【问题描述】:

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

知道为什么吗???

【问题讨论】:

    标签: qt contextmenu qt5 qwebview qwebkit


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多