• 11355阅读
  • 6回复

[讨论]Qt中使用ActiveX控件,获取返回值的问题 [复制链接]

上一主题 下一主题
离线dluffy
 

只看楼主 倒序阅读 楼主  发表于: 2015-11-02
Qt中使用ActiveX控件,通过dynamicCall()调用控件的函数:
QAxObject flag = ui->axWidget->dynamicCall("Open(PortType,PortMode)",2,0);
其中,控件中的Open(PortType,PortMode)函数有bool类型的返回值,但是在Qt中得到的flag是一个QAxObject类型的数据,我怎么才能得到一个bool类型的返回值,或者是怎么把flag转换为bool类型的值呢?
希望有人能解惑,谢谢~
本帖提到的人: @XChinux
离线lemonzll

只看该作者 1楼 发表于: 2015-11-02
dynamicCall返回值是QVariant,返回值调用toBool()就可以转换成bool类型了
离线dluffy

只看该作者 2楼 发表于: 2015-11-02
回 lemonzll 的帖子
lemonzll:dynamicCall返回值是QVariant,返回值调用toBool()就可以转换成bool类型了 (2015-11-02 17:09) 

谢谢~~
离线dluffy

只看该作者 3楼 发表于: 2015-11-02
回 lemonzll 的帖子
lemonzll:dynamicCall返回值是QVariant,返回值调用toBool()就可以转换成bool类型了 (2015-11-02 17:09) 

再问一下,querySubObject()返回值也是QVariant类型吗?
QVariant Mode=ui->axWidget->querySubObject("GetConnectionType()");
上面这句话报错:“QVariant::QVariant”:无法访问Private成员,(在Variant类中声明)
GetConnectionType()返回一个int类型的参数
另外,Qt里有没有什么函数可以查看数据类型的函数呢?
离线lemonzll

只看该作者 4楼 发表于: 2015-11-03
querySubObject返回值是QAxObject*类型。这些函数的说明你可以打开你安装的Qt开始菜单里有个Assistant软件,那个是帮助。或者用QtCreator里面带的帮助。
离线dluffy

只看该作者 5楼 发表于: 2015-11-03
回 lemonzll 的帖子
lemonzll:querySubObject返回值是QAxObject*类型。这些函数的说明你可以打开你安装的Qt开始菜单里有个Assistant软件,那个是帮助。或者用QtCreator里面带的帮助。 (2015-11-03 08:24) 

好的,非常感谢~
离线枫叶蓝

只看该作者 6楼 发表于: 2016-05-13
请问楼主用的哪个QT版本  qt 5.6 msvc 版藐视不支持调用activex
快速回复
限100 字节
 
上一个 下一个