gpt4 book ai didi

c#代码转成QT C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:29 25 4
gpt4 key购买 nike

我想使用 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++;
}
}

有了这个,我什至无法获得正确的 myCnt 。我只是想知道如何正确地写它。

我试过 qt foreach,但还是......

最佳答案

可能没有您可以调用的“计数”公共(public)插槽。为此,请使用 myEles->generateDocumentation(); 查看文档。

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

QAxObject* myEles = ui.axWidget->querySubObject("Document");
myEles = myEles->querySubObject("All");
QMap<QString, QVariant> map = myEles->propertyBag();
int myCnt = map.size();
for (int j = 0;j < myCnt;j++)
{
...
}

关于c#代码转成QT C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com