/*
//生成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;
}
*/