• 7180阅读
  • 2回复

QWebView如何获得光标所在的HTML控件【已解决】 [复制链接]

上一主题 下一主题
离线david1024
 
只看楼主 倒序阅读 楼主  发表于: 2010-08-25
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
比如说QWebView显示了一个注册页面,注册页面里有用户名、密码等文本框,我想通过光标位置获得哪个文本框在等待输入,谢谢!
[ 此帖被david1024在2010-08-26 13:26重新编辑 ]
菜鸟来学习
离线david1024
只看该作者 1楼 发表于: 2010-08-26
方法是用:Qt利用DOM API访问网页元素,
但有一点需要注意的是:我这里访问的网页都不是我自己写的网页,是访问互联网上的各种网页,所以网页元素的名称、ID等等都不能确定了,像javascript的document.getElementById()和document.getElementByName()等等函数是不能用的。

所以我的方法是:
         QWebFrame  *frame=this->page()->currentFrame();

         QWebElement  document=frame->documentElement();

         QWebElementCollection   elemColl=document.findAll(tr("input"));//到这里会找出所有的<input>控件(其他HTML控件类似,用法跟CSS的选择符一样)

         QWebElementCollection::iteratoriter=elemColl.begin();

         while(iter!=elemColl.end()){
                 QWebElement   elem=*iter

                 if(elem.hasFocus()){
  
                         //elem这个元素就是当前光标所在的HTML控件
                        break;
                 }

                 iter++;
          }

[ 此帖被david1024在2010-08-26 13:34重新编辑 ]
菜鸟来学习
离线linlin3233
只看该作者 2楼 发表于: 2010-08-26
学习了,
快速回复
限100 字节
 
上一个 下一个