C# c代码传输到QT c++;

C# c代码传输到QT c++;,c#,c++,qt,com,C#,C++,Qt,Com,我想用COM webbrowser制作一个程序,它是C#中的一个控件。在C#中,我编写了以下代码: myEles = webBrowser1.Document.All; foreach (HtmlElement myEle in myEles) { if (myEle.TagName == myTag) { if (i == myIndex) { return myEle;

我想用COM webbrowser制作一个程序,它是C#中的一个控件。在C#中,我编写了以下代码:

myEles = webBrowser1.Document.All;
foreach (HtmlElement myEle in myEles)
    {
        if (myEle.TagName == myTag)
        {
            if (i == myIndex)
            {
                return myEle;
            }
            i++;
        }
    }
我想把它转换成QT。我注意到Qaxobject是必不可少的。但我在枚举myEles中的元素时仍然卡住了,我在QT中的尝试代码:

int i = 0;
QAxObject*  myEles = ui.MyWebView->querySubObject("Document");
myEles = myEles->querySubObject("All");
QAxObject* myEle;
int myCnt = myEles->dynamicCall("Count").toInt();

for (int j = 0;j < myCnt;j++)
{
    myEle = myEles->querySubObject("[int]", j);
    if(myEle->property("TagName") ==myTag)
    {
        if (i == myIndex)
        {
            myEle->dynamicCall("InvokeMember(const QString&)", "click");
            return myEle;
        }
        i++;
    }
}
inti=0;
QAxObject*myEles=ui.MyWebView->querySubObject(“文档”);
myEles=myEles->querySubObject(“全部”);
QAxObject*髓鞘;
int myCnt=myEles->dynamicCall(“Count”).toInt();
对于(int j=0;jquerySubObject(“[int]”,j);
如果(Myle->property(“标记名”)==myTag)
{
如果(i==myIndex)
{
myEle->dynamicCall(“InvokeMember(const-QString&)”,“click”);
回髓;
}
i++;
}
}
有了这个,我甚至不能得到正确的myCnt。我只是想知道如何正确地写

我尝试过qt foreach,但仍然……

您可能无法调用“count”公共插槽。使用
myEles->generateDocumentation()检查文档用于此

要遍历所有属性,请使用函数
propertyBag()
。 您将获得一个包含所有属性的QMap:

QAxObject*myEles=ui.axWidget->querySubObject(“文档”);
myEles=myEles->querySubObject(“全部”);
QMap=myEles->propertyBag();
int myCnt=map.size();
对于(int j=0;j
谢谢你的回答,但是你给出的代码不能通过一些语法错误;问题在于:“QMap=myEles->propertyBag();”确切的错误消息是什么?我试过了,成功了。您是否包括?QAxObject*myWebBrowser\u QT::myEleGet(QString-myTag,int-myIndex){QAxObject-myEle;QAxObject-myEles=ui.MyWebView->querySubObject(“文档”);myEles=myEles->querySubObject(“全部”);QMap=myEles->propertyBag();int-myCnt=map.size();for(int j=0;j