依据控件类型排列界面

/*
//生成Tab页界面,依据控件类型配置界面
bool Widget::CreateTabPageDlg(struct ys::alg_param_set &sAlgParamSet, vector<s_CodeTabStruct> &vecCodeTabStruct)
{
    struct ys::alg_param_set *pAlgParamSet = &sAlgParamSet;
    s_CodeTabStruct sCodeTabStruct;
    sCodeTabStruct.name = QString::fromLocal8Bit(pAlgParamSet->pro.name.c_str());
    //获取界面参数结构体地址
    if(sCodeTabStruct.name == CGetConfigInfo::getInstance()->ReadUIText("24"))
    {
        m_eCodeType = Type_code;
        m_pTempAlgParamSetCodeOCR = pAlgParamSet;
    }
    else if(sCodeTabStruct.name == CGetConfigInfo::getInstance()->ReadUIText("25"))
    {
        m_eCodeType = Type_1D;
        m_pTempAlgParamSetCode1D = pAlgParamSet;
    }
    else if(sCodeTabStruct.name == CGetConfigInfo::getInstance()->ReadUIText("26"))
    {
        m_eCodeType = Type_2D;
        m_pTempAlgParamSetCode2D = pAlgParamSet;
    }
    else
    {
        qDebug() << QString("注意:码类类型名称与配置文件不一致!");
        return false;
    }
    //ID号
    sCodeTabStruct.index = pAlgParamSet->pro.id;
    //单Tab页对应的窗口
    MenuWidget *menuWidget = new MenuWidget();
    //单Tab页下的所有菜单
    vector<s_MenuStruct> vecMenuStruct;
    //码类结构体指针-第二层
    struct ys::alg_param *pAlgParam = nullptr;
    unsigned long long size_AlgParamSet = pAlgParamSet->params.size();

    for(unsigned long long j=0; j<size_AlgParamSet; j++)
    {
        pAlgParam = &pAlgParamSet->params.at(j);
        QString strSwHide = QString::fromLocal8Bit(pAlgParam->pro.sw_hide.c_str()); //隐藏开关
        if(strSwHide == "true")
            continue;
        QString sName = QString::fromLocal8Bit(pAlgParam->pro.name.c_str());
        if(sName == "")  //标题栏为空,则认为无数据
            continue;
        s_MenuStruct *sMenuStruct = new s_MenuStruct;
        sMenuStruct->index = pAlgParam->pro.id;
        sMenuStruct->name = sName;
        //码类结构体指针-第三层
        struct ys::param_set *pParamSet = nullptr;
        unsigned long long size_AlgParam = pAlgParam->params.size();
        for(unsigned long long k=0; k<size_AlgParam; k++)
        {
            pParamSet = &pAlgParam->params.at(k);
            QString strSwHide = QString::fromLocal8Bit(pAlgParam->pro.sw_hide.c_str()); //隐藏开关
            if(strSwHide == "true")
                continue;
            QString sName = QString::fromLocal8Bit(pParamSet->pro.name.c_str());
            if(sName == "") //标题栏为空,则认为无数据
                continue;
            //单条SubMenu结构体
            s_SubMenuStruct *eSubMenuStruct = new s_SubMenuStruct;
            eSubMenuStruct->index = pParamSet->pro.id;
            eSubMenuStruct->name = sName;
            //SubMenu对应的内容
            ParamsWidget *paramsWidget = new ParamsWidget();
            ContainerStack *containerStack = new ContainerStack();

            //码类结构体指针-第四层
            struct ys::param *pParam = nullptr;
            unsigned long long size_ParamSet = pParamSet->params.size();

            //分类容器
            vector<BaseControl *> m_vEdit;
            vector<BaseControl *> m_vEditSpinBox;
            vector<BaseControl *> m_vEditDSpinBox;
            vector<BaseControl *> m_vHslider;
            vector<BaseControl *> m_vComboBox;
            vector<BaseControl *> m_vCheckBox;
            for(unsigned long long l=0; l<size_ParamSet; l++)
            {
                pParam = &pParamSet->params.at(l);

                //生成基础控件
                ys::ctrl_tpye eCtrlType;
                BaseControl * pControl = ChangeSigleParam(*pParam, eCtrlType);
                if(pControl == nullptr)
                    continue;

                switch (eCtrlType)
                {
                    case ys::CT_EDIT:
                    {
                        m_vEdit.push_back(pControl);
                        break;
                    }
                    case ys::CT_EDIT_SPINBOX:
                    {
                        m_vEditSpinBox.push_back(pControl);
                        break;
                    }
                    case ys::CT_EDIT_DOUBLESPINBOX:
                    {
                        m_vEditDSpinBox.push_back(pControl);
                        break;
                    }
                    case ys::CT_HSLIDER:
                    {
                        m_vHslider.push_back(pControl);
                        break;
                    }
                    case ys::CT_COMBOBOX:
                    {
                        m_vComboBox.push_back(pControl);
                        break;
                    }
                    case ys::CT_CHECKBOX:
                    {
                        m_vCheckBox.push_back(pControl);
                        break;
                    }
                    default:
                        break;
                 }
            }
            vector<BaseControl *> vNormalEdit;
            vector<ControlContainer *> vNormalContainer;
            for(vector<BaseControl *>::iterator it=m_vComboBox.begin(); it!=m_vComboBox.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            for(vector<BaseControl *>::iterator it=m_vEdit.begin(); it!=m_vEdit.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            for(vector<BaseControl *>::iterator it=m_vEditSpinBox.begin(); it!=m_vEditSpinBox.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            for(vector<BaseControl *>::iterator it=m_vEditDSpinBox.begin(); it!=m_vEditDSpinBox.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            for(vector<BaseControl *>::iterator it=m_vHslider.begin(); it!=m_vHslider.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            for(vector<BaseControl *>::iterator it=m_vCheckBox.begin(); it!=m_vCheckBox.end(); it++)
            {
                vNormalEdit.push_back(*it);
            }
            int iSize = vNormalEdit.size();
            int iCount = iSize / g_iMaxRow  + 1;
            for(int ii=0; ii< iCount; ii++)
            {
                ControlContainer *normalConttainer = new NormalContainer;
                vNormalContainer.push_back(normalConttainer);
                containerStack->PushContainer(normalConttainer);
            }
            for(int jj=0; jj<iSize; jj++)
            {
                BaseControl *pControl = vNormalEdit.at(jj);
                ControlContainer *pConttainer = vNormalContainer.at(jj / g_iMaxRow );
                pConttainer->PushControl(pControl);
            }
            for(int kk=0; kk< iCount; kk++)
            {
                vNormalContainer.at(kk)->AddUILayout();

            }
            containerStack->AddUILayout();
            paramsWidget->ShowParams(containerStack);
            eSubMenuStruct->pParamsWidget = paramsWidget;
            sMenuStruct->listSubMenu.push_back(*eSubMenuStruct);
        }
        vecMenuStruct.push_back(*sMenuStruct);
    }
    menuWidget->SetParentWidget(this);
    menuWidget->CreatBtnMenus(vecMenuStruct); //使用自定义btnToolBox
    sCodeTabStruct.pMenuWidget = menuWidget;
    vecCodeTabStruct.push_back(sCodeTabStruct);
    return true;
}
*/

/*
//生成基础参数界面,依据控件类型排序
bool Widget::CreateBaseParamDlg(struct ys::param_set &sParamSet)
{
    unsigned long long size = sParamSet.params.size();
    //基础参数对应的内容
    ParamsWidget *paramsWidget = new ParamsWidget();
    ContainerStack *containerStack = new ContainerStack();
    //分类容器
    vector<BaseControl *> vEdit;
    vector<BaseControl *> vEditSpinBox;
    vector<BaseControl *> vEditDSpinBox;
    vector<BaseControl *> vHslider;
    vector<BaseControl *> vComboBox;
    vector<BaseControl *> vCheckBox;
    //创建检码类型选择控件
    vComboBox.push_back(GenerateMarkModeCtrl());
    //码类结构体指针-第四层
    struct ys::param *pParam = nullptr;
    for(unsigned long long i=0; i<size; i++)
    {
        pParam = &sParamSet.params.at(i);
        //生成基础控件
        ys::ctrl_tpye eCtrlType;
        BaseControl * pControl = ChangeSigleParam(*pParam, eCtrlType);
        if(pControl == nullptr)
            continue;
        switch (eCtrlType)
        {
            case ys::CT_EDIT:
            {
                vEdit.push_back(pControl);
                break;
            }
            case ys::CT_EDIT_SPINBOX:
            {
                vEditSpinBox.push_back(pControl);
                break;
            }
            case ys::CT_EDIT_DOUBLESPINBOX:
            {
                vEditDSpinBox.push_back(pControl);
                break;
            }
            case ys::CT_HSLIDER:
            {
                vHslider.push_back(pControl);
                break;
            }
            case ys::CT_COMBOBOX:
            {
                vComboBox.push_back(pControl);
                break;
            }
            case ys::CT_CHECKBOX:
            {
                vCheckBox.push_back(pControl);
                break;
            }
            default:
                break;
         }
    }
    vector<BaseControl *> vNormalEdit;
    vector<ControlContainer *> vNormalContainer;
    for(vector<BaseControl *>::iterator it=vComboBox.begin(); it!=vComboBox.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    for(vector<BaseControl *>::iterator it=vEdit.begin(); it!=vEdit.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    for(vector<BaseControl *>::iterator it=vEditSpinBox.begin(); it!=vEditSpinBox.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    for(vector<BaseControl *>::iterator it=vEditDSpinBox.begin(); it!=vEditDSpinBox.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    for(vector<BaseControl *>::iterator it=vHslider.begin(); it!=vHslider.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    for(vector<BaseControl *>::iterator it=vCheckBox.begin(); it!=vCheckBox.end(); it++)
    {
        vNormalEdit.push_back(*it);
    }
    int iSize = vNormalEdit.size();
    int iCount = iSize / g_iMaxRow + 1;
    for(int ii=0; ii< iCount; ii++)
    {
        ControlContainer *normalConttainer = new NormalContainer;
        vNormalContainer.push_back(normalConttainer);
        containerStack->PushContainer(normalConttainer);
    }
    for(int jj=0; jj<iSize; jj++)
    {
        BaseControl *pControl = vNormalEdit.at(jj);
        ControlContainer *pConttainer = vNormalContainer.at(jj / g_iMaxRow);
        pConttainer->PushControl(pControl);
    }
    for(int kk=0; kk< iCount; kk++)
    {
        vNormalContainer.at(kk)->AddUILayout();
    }
    containerStack->AddUILayout();
    paramsWidget->ShowParams(containerStack);
    //放入Tab页内

    QString sName = QString::fromLocal8Bit(sParamSet.pro.name.c_str());
    m_tab->addTab(paramsWidget, sName);
    m_leftWidget = m_tab; //用于布局
    return true;
}
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值