能使用Q t实现对objectarx的多版本开发嘛?,如果可以具体该怎么实现?
1条回答 默认 最新
关注 Qt主要是用于开发跨平台的图形界面应用程序,而ObjectARX是一个用于AutoCAD开发的库,二者并没有直接的关系。不过,如果需要在Qt应用程序中调用ObjectARX的功能,则可以通过在Qt应用程序中嵌入AutoCAD ActiveX控件的方式来实现。
具体来说,可以在Qt应用程序中创建一个QAxWidget控件,然后将其作为ActiveX控件嵌入到Qt界面中,再调用ObjectARX的API。需要注意的是,由于ObjectARX是与AutoCAD版本相关的,因此需要根据不同的AutoCAD版本来选择不同的ObjectARX库文件。
以下是一个简单的示例代码,可以在Qt应用程序中调用AutoCAD的COM接口:#include <QApplication> #include <QAxWidget> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 创建QAxWidget控件 QAxWidget* axWidget = new QAxWidget(); // 设置ActiveX控件的CLSID(AutoCAD的CLSID为"{E183B7FC-8C13-11D3-BC86-0060B0EC020B}") axWidget->setControl("{E183B7FC-8C13-11D3-BC86-0060B0EC020B}"); // 调用AutoCAD的COM接口 QVariant result; axWidget->dynamicCall("SetVariable(QString, QVariant)", "CMDECHO", true); axWidget->dynamicCall("Command(QString)", "LINE"); axWidget->dynamicCall("Command(QString)", "0,0"); axWidget->dynamicCall("Command(QString)", "100,100"); axWidget->dynamicCall("Command(QString)", "QUIT"); return a.exec(); }
需要注意的是,Qt应用程序需要使用32位编译器,并且需要将AutoCAD的安全设置中的“加载项”选项打开,才能正常调用AutoCAD的COM接口。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 高价求中通快递查询接口
- ¥15 解决一个加好友限制问题 或者有好的方案
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?