许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  Linux环境下:中望CAD二次开发经典菜单教程

Linux环境下:中望CAD二次开发经典菜单教程

阅读数 62
点赞 0
article_banner

一、环境

系统 环境:麒麟V10 SP1 虚拟机系统 + 中望CAD2023/2024.

编程环境 :QTCreate 5.12.8库

二、代码

加入头文件

#include "ZwRibbonRoot.h"
#include "RibbonRoot.h"
#include "PopMenuRoot.h"
#include "arxHeaders.h"
#include "OpCommon.h"
#include <QFile>
#include <QDomDocument>
#include <QDomElement>
#include <qstring.h>

加入命令反应类

//命令接口类
class CClassicsMenuCommand :public ICommand
{
public:
    CClassicsMenuCommand()
    {

    }

    ~CClassicsMenuCommand()
    {

    }

    virtual bool CanExecute()
    {
        return true;
    }

    //命令执行函数
    virtual void Execute(CuiObject* obj)
    {
        PopMenuItem *item = dynamic_cast<PopMenuItem*>(obj);
        if (item)
        {
            QString strCmd = item->getUID() + " ";
            wchar_t strCmdW[1024] = { 0 };
            strCmd.toWCharArray(strCmdW);
            AcApDocument* pDoc = acDocManager->curDocument();
            acDocManager->sendStringToExecute(pDoc,strCmdW,true,false,false);
            return;
        }
    }
};

添加菜单代码

    //获取菜单表
    CClassicsMenuCommand *handler = new CClassicsMenuCommand();
    ZwMenuControl *pMenuCtrl = ZwMenuControl::GetMenuControl();
    if (!pMenuCtrl)
    {
        return;
    }

    //添加主菜单项目
    PopMenu *pMenuMain = new PopMenu(NULL);
    pMenuMain->setId("MAIN-1");
    pMenuMain->init();
    pMenuMain->setText("主菜单");
    pMenuCtrl->AddMenu(pMenuMain);


    //加入大项-1
    {
        PopMenu *pMenuBig = new PopMenu(NULL);
        pMenuBig->init();
        pMenuBig->setId("BIGMENU-0");
        pMenuBig->setText("菜单大项-0");
        pMenuBig->setImagePath(":/ZWCADRes/ZWCAD/IDR_MAINFRAME");
        pMenuMain->addItem(pMenuBig);

        {//子项
            PopMenuItem *item0 = new PopMenuItem(NULL);
            item0->setUserCmd(handler);
            item0->setImagePath(":/ZWCADRes/ZWCAD/IDR_MAINFRAME");
            item0->init();
            item0->setId("SMALL-0");
            item0->setUID("测试命令0");
            item0->setText("子菜单0");
            pMenuBig->addItem(item0);

            //分隔符
            PopMenuItem *itemSp = new PopMenuItem(NULL);
            itemSp->init();
            itemSp->setIsSeparator(true);
            pMenuBig->addItem(itemSp);

            PopMenuItem *item1 = new PopMenuItem(NULL);
            item1->setUserCmd(handler);
            item1->setImagePath(":/ZWCADRes/ZWCAD/IDR_MAINFRAME");
            item1->init();
            item1->setId("SMALL-1");
            item1->setUID("测试命令1");
            item1->setText("子菜单1");
            pMenuBig->addItem(item1);
        }
    }


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...

相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空