#include "colorordersetwidget.h" #include "ui_colorordersetwidget.h" ColorOrderSetWidget::ColorOrderSetWidget(QWidget *parent) : QWidget(parent), ui(new Ui::ColorOrderSetWidget), m_itemPerPage(72), m_pEmbNeedleBtn(NULL), m_pColorBtn(NULL) { ui->setupUi(this); setWindowFlags (Qt::Window | Qt::FramelessWindowHint); setWindowModality(Qt::ApplicationModal); m_mousePressX = 0; m_mousePressY = 0; m_mouseReleaseX = 0; m_mouseReleaseY = 0; m_greyBeginStep = 0;//灰色起始 m_greyEndStep = 0; //灰色结束 initWidget(); initControl(); initNeedleBar(); refreshLockBtn(); initArabControlPos(); } ColorOrderSetWidget::~ColorOrderSetWidget() { if(m_pCurEmbData != NULL) { delete m_pCurEmbData; } delete ui; } void ColorOrderSetWidget::initWidget() { m_pCurEmbData = new EmbData(); m_pCurEmbData->initColor(g_pSettings->getColorRgbArray().size(),(QRgb*)g_pSettings->getColorRgbArray().data()); int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能 if(coil == 1) { ui->buttonExplanation->setVisible(true);//缠绕的解释说明 } else { ui->buttonExplanation->setVisible(false); } int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能 if(laser == 1) { ui->buttonColorLaser->setVisible(true);//设置激光的快捷色序 } else { ui->buttonColorLaser->setVisible(false); } int combineEmb = g_pSettings->readFromInHMIiFile("HMI/combineEmb").toInt();//是否有双头组合绣功能 //是否显示双头组合按钮 if(combineEmb == 1) { ui->buttonCombineEmb->setVisible(true); } else { ui->buttonCombineEmb->setVisible(false); } int threeCombineEmb = g_pSettings->readFromInHMIiFile("HMI/threeCombineEmb").toInt();//是否有三头组合绣功能 //是否显示双头组合按钮 if(threeCombineEmb == 1) { ui->buttonThreeCombineEmb->setVisible(true); } else { ui->buttonThreeCombineEmb->setVisible(false); } int headEmb = g_pSettings->readFromInHMIiFile("HMI/headEmb").toInt();//是否有隔头绣功能 //是否显示隔头绣按钮 if(headEmb == 1) { ui->buttonHeadEmb->setVisible(true); } else { ui->buttonHeadEmb->setVisible(false); } m_colorBeginStepCtrl = 0; m_colorEndStepCtrl = 0; m_curSelectColor = -1; m_curPages = 1; m_pageNums = 1; m_combineEmb = 1;//双头组合绣 m_threeCombineEmb = 1;//三头组合绣 m_combineEmbFirst = 1; m_threeCombineEmbFirst = 1; m_colorOrderLimitFlag = 0; m_refreshColorOrder = 1;//是否刷新花版色序的标志 memset(m_headBuf, 0, sizeof(m_headBuf)); m_colorSetBtnLockFlag = 1;//锁住 m_setType = TYPE_COLORSET; m_fileType = FILE_TYPE_DST; m_pColorBuf = (QRgb *)(g_pSettings->getColorRgbArray().data()); m_buttonStyle1 = "QPushButton{outline: none;border:0px solid rgb(0,0,0);border-style:inset;border-radius:5px;"; m_buttonStyle2 = "QPushButton:checked{outline: none;border:3px groove rgb(80,80,80);}"; m_buttonColorOrderList.clear();//色序按钮 for(int i = 0; i < m_itemPerPage; i++) { MyButton *buttonColorOrder = new MyButton(ui->frameColorOrder); m_buttonColorOrderList.append(buttonColorOrder); connect(buttonColorOrder, SIGNAL(clicked()), this, SLOT(colorOrderBtnClick()) ); } m_buttonEmbNeedleList.clear();//针杆按钮 for(int i = 0; i < 32; i++) { QPushButton *buttonEmbNeedle = new QPushButton(ui->frameColorOrder); m_buttonEmbNeedleList.append(buttonEmbNeedle); connect(buttonEmbNeedle, SIGNAL(pressed()), this, SLOT(embNeedleBtnPressed())); connect(buttonEmbNeedle, SIGNAL(released()), this, SLOT(embNeedleBtnReleased())); } } void ColorOrderSetWidget::initControl() { //根据不同分辨率设置控件的位置和尺寸 switch (g_emResolut) { case resolution1910: initResolution1910(); break; case resolution1006: initResolution1006(); break; default: this->resize(1920,1080); break; } int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能 int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能 int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能 //右上方色序锁住按钮是否可见 if((g_emMacType == MACHINE_EMB && towel ==1)|| //绣花机带毛巾 (g_emMacType == MACHINE_EMB && coil ==1)|| //绣花机带缠绕 (g_emMacType == MACHINE_EMB && laser ==1) //绣花机带激光 ) { ui->buttonColorSetLock->setVisible(true); } else { ui->buttonColorSetLock->setVisible(false); } initControlStyle();//初始化窗体控件样式 } void ColorOrderSetWidget::initResolution1910() { this->resize(1920,1080); ui->frameBack->setGeometry(0,0,1920,1080); ui->buttonTypeLogo->setGeometry(128,66,78,78); ui->labelMainTitle->setGeometry(226,60,400,44); ui->labelSubTitle->setGeometry(302,112,1000,36); ui->frameRightUp->setGeometry(1130,92,768,72); ui->buttonColorOrderClear->setGeometry(692,0,66,66); ui->buttonColorOrderCycle->setGeometry(604,0,66,66); ui->buttonColorSetLock->setGeometry(516,0,66,66); ui->buttonHeadEmb->setGeometry(428,0,66,66); ui->buttonCombineEmb->setGeometry(340,0,66,66); ui->buttonThreeCombineEmb->setGeometry(252,0,66,66); ui->buttonExplanation->setGeometry(164,0,66,66); ui->buttonColorLaser->setGeometry(76,0,66,66); ui ->buttonRefreshColorOrder->setGeometry(0,0,66,66); ui->frameColorOrder->setGeometry(84,220,1344,704); ui->buttonNeedle->setGeometry(0,0,200,52); QRect rectImage(0,0,88,52); QRect rectName(38,47,44,28); QRect rectValue(0,0,88,52); for(int i = 0; i < 6; i++) { int num = m_buttonColorOrderList.size()/6; for(int j = 0; j < num; j++) { m_buttonColorOrderList[i*num+j]->setGeometry(j*114,220+i*82,88,80); m_buttonColorOrderList[i*num+j]->initUpImageDownName(rectImage,rectName); m_buttonColorOrderList[i*num+j]->initLabelValue(rectValue); m_buttonColorOrderList[i*num+j]->setLabelNameFont(fontNormal_3); m_buttonColorOrderList[i*num+j]->setLabelValueFont(fontNormal_1); m_buttonColorOrderList[i*num+j]->setStyleSheet("border:0px;outline:none;");//无边框、无焦点 } } for(int i = 0; i < 3; i++) { int num,xSp,idx; if(i == 0) { num = 10;//第一行10个 xSp = 228; idx = 0; } else if(i == 1) { num = 12;//第二行12个 xSp = 0; idx = 10; } else if(i == 2) { num = 10;//第三行10个 xSp = 0; idx = 22; } for(int j = 0; j < num; j++) { m_buttonEmbNeedleList[idx+j]->setGeometry(xSp+j*114,i*70,88,52); m_buttonEmbNeedleList[idx+j]->setFont(fontNormal_1); m_buttonEmbNeedleList[idx+j]->setText(QString::number(idx+j+1)); } } ui->labelPatternView->setGeometry(1536,220,302,302); ui->labelNameValue->setGeometry(1538,564,400,36); ui->labelTotalNeedle->setGeometry(1538,604,200,36); ui->labelTotalNeedleValue->setGeometry(1760,604,94,36); ui->labelTotalColor->setGeometry(1538,644,200,36); ui->labelTotalColorValue->setGeometry(1760,644,94,36); ui->labelCurColorNum->setGeometry(1538,684,200,36); ui->labelCurColorNumValue->setGeometry(1760,684,94,36); ui->labelBeginIdx->setGeometry(1538,724,200,36); ui->labelBeginIdxValue->setGeometry(1760,724,94,36); ui->labelEndIdx->setGeometry(1538,764,200,36); ui->labelEndIdxValue->setGeometry(1760,764,94,36); ui->labelNeedleSelect->setGeometry(1538,804,180,36); ui->labelNeedleSelectValue->setGeometry(1655,804,200,36); ui->framePageBtn->setGeometry(1120,990,800,70); ui->labelPage->setGeometry(32,1008,400,40); ui->buttonPgUp->setGeometry(0,0,168,70); ui->buttonPgDn->setGeometry(200,0,168,70); ui->buttonOk->setGeometry(400,0,168,70); ui->buttonCancel->setGeometry(600,0,168,70); } void ColorOrderSetWidget::initResolution1006() { this->resize(1024,600); ui->frameBack->setGeometry(0,0,1024,600); ui->buttonTypeLogo->setGeometry(25,30,60,60); ui->labelMainTitle->setGeometry(100,30,200,24); ui->labelSubTitle->setGeometry(130,64,240,21); ui->frameRightUp->setGeometry(500,40,857,61); ui->buttonColorOrderClear->setGeometry(456,0,50,50); ui->buttonColorOrderCycle->setGeometry(399,0,50,50); ui->buttonColorSetLock->setGeometry(342,0,50,50); ui->buttonHeadEmb->setGeometry(285,0,50,50); ui->buttonCombineEmb->setGeometry(228,0,50,50); ui->buttonThreeCombineEmb->setGeometry(171,0,50,50); ui->buttonExplanation->setGeometry(114,0,50,50); ui->buttonColorLaser->setGeometry(57,0,50,50); ui ->buttonRefreshColorOrder->setGeometry(0,0,50,50); ui->frameColorOrder->setGeometry(20,120,740,420); ui->buttonNeedle->setGeometry(24,0,110,32); QRect rectImage(0,0,56,32);//下边颜色图片的大小和位置 QRect rectName(22,30,28,16);//数字 QRect rectValue(0,0,56,32);//下边颜色图片里的文字 for(int i = 0; i < 6; i++) { int num = m_buttonColorOrderList.size()/6; for(int j = 0; j < num; j++) { m_buttonColorOrderList[i*num+j]->setGeometry(25+j*60,124+i*50,56,46);//下边控件的大小 m_buttonColorOrderList[i*num+j]->initUpImageDownName(rectImage,rectName); m_buttonColorOrderList[i*num+j]->initLabelValue(rectValue); m_buttonColorOrderList[i*num+j]->setLabelNameFont(fontNormal_1); m_buttonColorOrderList[i*num+j]->setLabelValueFont(fontNormal_1); m_buttonColorOrderList[i*num+j]->setStyleSheet("border:0px;outline:none;");//无边框、无焦点 } } for(int i = 0; i < 3; i++) { int num,xSp,idx; if(i == 0) { num = 10;//第一行10个 xSp = 145; idx = 0; } else if(i == 1) { num = 12;//第二行12个 xSp = 25; idx = 10; } else if(i == 2) { num = 10;//第三行10个 xSp = 25; idx = 22; } for(int j = 0; j < num; j++) { m_buttonEmbNeedleList[idx+j]->setGeometry(xSp+j*60,i*38,56,32);//上边颜色的大小 m_buttonEmbNeedleList[idx+j]->setFont(fontNormal_1); m_buttonEmbNeedleList[idx+j]->setText(QString::number(idx+j+1)); } } ui->labelPatternView->setGeometry(790,98,220,220); ui->labelNameValue->setGeometry(816,320,141,20); ui->labelTotalNeedle->setGeometry(816,350,141,20); ui->labelTotalNeedleValue->setGeometry(895,350,91,20); ui->labelTotalColor->setGeometry(816,375,91,20); ui->labelTotalColorValue->setGeometry(895,375,91,20); ui->labelCurColorNum->setGeometry(816,400,91,20); ui->labelCurColorNumValue->setGeometry(895,400,91,20); ui->labelBeginIdx->setGeometry(816,425,91,20); ui->labelBeginIdxValue->setGeometry(895,425,91,20); ui->labelEndIdx->setGeometry(816,450,91,20); ui->labelEndIdxValue->setGeometry(895,450,91,20); ui->labelNeedleSelect->setGeometry(816,475,91,20); ui->labelNeedleSelectValue->setGeometry(895,475,91,20); ui->framePageBtn->setGeometry(595,545,600,40); ui->labelPage->setGeometry(20,550,102,45); ui->buttonPgUp->setGeometry(0,0,96,40); ui->buttonPgDn->setGeometry(106,0,96,40); ui->buttonOk->setGeometry(212,0,96,40); ui->buttonCancel->setGeometry(318,0,96,40); } void ColorOrderSetWidget::initControlStyle() { SetControlStyle setControlStyle; setControlStyle.setUiName(this->objectName()); //背景图 QString frameBackImgPath = setControlStyle.getStyleSheet(this->objectName()); ui->frameBack->setStyleSheet(frameBackImgPath); ui->frameColorOrder->setStyleSheet(TRANSPARENTSTYLE); //label样式 ui->labelMainTitle->setFont(fontBold_1); ui->labelMainTitle->setStyleSheet(LABELWHITESTYLE); ui->labelSubTitle->setFont(fontNormal_1); ui->labelSubTitle->setStyleSheet(LABELWHITESTYLE); ui->labelPage->setFont(fontNormal_1); ui->labelPage->setStyleSheet(LABELWHITESTYLE); ui->buttonNeedle->setFont(fontNormal_6); ui->labelPatternView->setStyleSheet(TRANSPARENTSTYLE); ui->labelNameValue->setFont(fontNormal_6); ui->labelNameValue->setStyleSheet(LABELWHITESTYLE); ui->labelTotalNeedle->setFont(fontNormal_6); ui->labelTotalNeedle->setStyleSheet(LABELWHITESTYLE); ui->labelTotalNeedleValue->setFont(fontNormal_6); ui->labelTotalNeedleValue->setStyleSheet(LABELWHITESTYLE); ui->labelTotalColor->setFont(fontNormal_6); ui->labelTotalColor->setStyleSheet(LABELWHITESTYLE); ui->labelTotalColorValue->setFont(fontNormal_6); ui->labelTotalColorValue->setStyleSheet(LABELWHITESTYLE); ui->labelCurColorNum->setFont(fontNormal_6); ui->labelCurColorNum->setStyleSheet(LABELWHITESTYLE); ui->labelCurColorNumValue->setFont(fontNormal_6); ui->labelCurColorNumValue->setStyleSheet(LABELWHITESTYLE); ui->labelBeginIdx->setFont(fontNormal_6); ui->labelBeginIdx->setStyleSheet(LABELWHITESTYLE); ui->labelBeginIdxValue->setFont(fontNormal_6); ui->labelBeginIdxValue->setStyleSheet(LABELWHITESTYLE); ui->labelEndIdx->setFont(fontNormal_6); ui->labelEndIdx->setStyleSheet(LABELWHITESTYLE); ui->labelEndIdxValue->setFont(fontNormal_6); ui->labelEndIdxValue->setStyleSheet(LABELWHITESTYLE); ui->labelNeedleSelect->setFont(fontNormal_6); ui->labelNeedleSelect->setStyleSheet(LABELWHITESTYLE); ui->labelNeedleSelectValue->setFont(fontNormal_6); ui->labelNeedleSelectValue->setStyleSheet(LABELWHITESTYLE); ui->framePageBtn->setStyleSheet(TRANSPARENTSTYLE); //右上方 ui->frameRightUp->setStyleSheet(TRANSPARENTSTYLE); ui->buttonColorOrderClear->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonColorOrderClear->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorOrderClear->objectName())); ui->buttonColorOrderCycle->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonColorOrderCycle->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorOrderCycle->objectName())); ui->buttonHeadEmb->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonHeadEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonHeadEmb->objectName())); ui->buttonCombineEmb->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonCombineEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonCombineEmb->objectName())); ui->buttonThreeCombineEmb->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonThreeCombineEmb->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonThreeCombineEmb->objectName())); ui->buttonExplanation->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonExplanation->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonExplanation->objectName())); ui->buttonColorLaser->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonColorLaser->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorLaser->objectName())); ui->buttonRefreshColorOrder->setGreenGradientBottomStyle(BORDER_RADIUS1); ui->buttonRefreshColorOrder->setVisible(false); // ui->buttonRefreshColorOrder->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorLaser->objectName())); ui->buttonColorSetLock->setGreenGradientBottomStyle(BORDER_RADIUS1); //四个按钮样式表一样 ui->buttonPgUp->setOrangeGradientBottomStyle(BORDER_RADIUS2); ui->buttonPgUp->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgUp->objectName()),12); ui->buttonPgDn->setOrangeGradientBottomStyle(BORDER_RADIUS2); ui->buttonPgDn->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonPgDn->objectName()),12); ui->buttonOk->setOrangeGradientBottomStyle(BORDER_RADIUS2); ui->buttonOk->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonOk->objectName()),12); ui->buttonCancel->setOrangeGradientBottomStyle(BORDER_RADIUS2); ui->buttonCancel->setTopImage(setControlStyle.getSharedTopStyleSheet(ui->buttonCancel->objectName()),12); } void ColorOrderSetWidget::initArabControlPos() { int language = g_pSettings->readFromInHMIiFile("HMI/language").toInt(); if(language != arabic) { return; } ui->labelMainTitle->setAlignment(Qt::AlignRight | Qt::AlignVCenter); ui->labelSubTitle->setAlignment(Qt::AlignRight | Qt::AlignVCenter); //ui->labelNameValue->setAlignment(Qt::AlignRight | Qt::AlignVCenter); ui->labelTotalNeedle->setAlignment(Qt::AlignRight | Qt::AlignVCenter); // ui->labelTotalNeedleValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->labelTotalColor->setAlignment(Qt::AlignRight | Qt::AlignVCenter); //ui->labelTotalColorValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->labelCurColorNum->setAlignment(Qt::AlignRight | Qt::AlignVCenter); // ui->labelCurColorNumValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->labelBeginIdx->setAlignment(Qt::AlignRight | Qt::AlignVCenter); // ui->labelBeginIdxValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->labelEndIdx->setAlignment(Qt::AlignRight | Qt::AlignVCenter); //ui->labelEndIdxValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); ui->labelNeedleSelect->setAlignment(Qt::AlignRight | Qt::AlignVCenter); //ui->labelNeedleSelectValue->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); } void ColorOrderSetWidget::initNeedleBar() { //读入配置 QDir apppath(qApp->applicationDirPath()); //配置文件路径 QString configFile = apppath.path() + apppath.separator() + "config.ini"; QFile iniFile(configFile); int num,idx; if(!iniFile.exists()) { if(m_combineEmb == -1)//组合绣模式 { num = 2; } else if(m_threeCombineEmb == -1)//三头组合绣模式 { num = 3; } else { num = 1; } idx = 0; QRgb rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)]; rgb |= 0xff000000; QColor bkcolor(rgb); QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168); QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";" + " color:" + tcolor.name() + ";"; for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { if(i < num) { if(m_combineEmb == -1)//组合绣模式 { if(i < num/2)//i<1 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/2)//i>=1 { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1)); } } else if(m_threeCombineEmb == -1)//三头组合绣 { if(i < num/3)//9*3 = 27 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/3 && i < (num/3)*2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1)); } else if(i >=(num/3)*2) { m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1)); } } else { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2); m_buttonEmbNeedleList.at(i)->show(); } else { m_buttonEmbNeedleList.at(i)->hide(); } } } else { //存在配置文件 QRgb rgb = qRgb(0,255,0); switchNeedleNum(num);//显示当前色序所选的针杆 if(m_combineEmb == -1)//组合绣模式 { num = num * 2;// } else if(m_threeCombineEmb == -1) { num = num * 3;//9个针杆 *3 } for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { QString idxStr; idxStr = getNeedleColorStr(i+1); #if(0) if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx"; } else if(i >= num/2) { idxStr = "EmbNeedle/"+QString::number((i-num/2)+1)+"_coloridx"; } } else { idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx"; } #endif if(g_pSettings->ifKeyExists(idxStr) == true) { idx = g_pSettings->readFromIniFile(idxStr).toInt(); rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)]; m_pCurEmbData->setNeedleColorTable(i,idx); } else { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; m_pCurEmbData->setNeedleColorTable(i,i); #if(0) if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; } else if(i >= num/2) { rgb = m_pColorBuf[((i-num/2) % EMB_MC_SW_ND)]; } } else { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; } #endif } rgb |= 0xff000000; QColor bkcolor(rgb); QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168); QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";" + " color:" + tcolor.name() + ";"; if(i < num) { if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1)); } } else if(m_threeCombineEmb == -1) { if(i < num/3)//9*3 = 27 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/3 && i < (num/3)*2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1)); } else if(i >=(num/3)*2) { m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1)); } } else { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } //属于冲缝绣,毛巾针步才显示针杆设置按钮,因为有的色序里只有偏移针步 if(m_colorBeginStepCtrl == DATA_SEWING || m_colorBeginStepCtrl == DATA_EMB || m_colorBeginStepCtrl == DATA_PUNCH || m_colorBeginStepCtrl == DATA_CHENILLE || m_colorBeginStepCtrl == DATA_CHAIN || m_colorBeginStepCtrl == DATA_COIL || m_colorBeginStepCtrl == DATA_SAWTOOTH || m_colorBeginStepCtrl == DATA_RIBBON || m_colorBeginStepCtrl == DATA_LASER || m_colorBeginStepCtrl == 0) { m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2); m_buttonEmbNeedleList.at(i)->show(); } else { m_buttonEmbNeedleList.at(i)->hide(); } } else { m_buttonEmbNeedleList.at(i)->hide(); } } } for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { m_buttonEmbNeedleList.at(i)->setChecked(false); m_buttonEmbNeedleList.at(i)->setCheckable(false); } if(m_threeCombineEmb != 1 || m_combineEmb !=1) { m_colorSetBtnLockFlag = 1; refreshLockBtn(); ui->buttonColorSetLock->setVisible(false); m_colorBeginStepCtrl = DATA_EMB; switchNeedleBar(); } if(m_threeCombineEmb == 1 && m_combineEmb ==1) { ui->buttonColorSetLock->setVisible(true); } } void ColorOrderSetWidget::switchNeedleBar() { //读入配置 QDir apppath(qApp->applicationDirPath()); //配置文件路径 QString configFile = apppath.path() + apppath.separator() + "config.ini"; QFile iniFile(configFile); int num,idx; num = 0; if(!iniFile.exists()) { if(m_combineEmb == -1)//组合绣模式 { num = 2; } else if(m_threeCombineEmb == -1)//三头组合绣模式 { num = 3; } else { num = 1; } idx = 0; QRgb rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)]; rgb |= 0xff000000; QColor bkcolor(rgb); QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168); QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";" + " color:" + tcolor.name() + ";"; for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { if(i < num) { if(m_combineEmb == -1)//组合绣模式 { if(i < num/2)//i<1 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/2)//i>=1 { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1)); } } else if(m_threeCombineEmb == -1)//三头组合绣 { if(i < num/3)//9*3 = 27 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/3 && i < (num/3)*2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1)); } else if(i >=(num/3)*2) { m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1)); } } else { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2); m_buttonEmbNeedleList.at(i)->show(); } else { m_buttonEmbNeedleList.at(i)->hide(); } } } else { QRgb rgb = qRgb(0,255,0); if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示毛巾针杆 } else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆 } else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆 { num = COILNEEDLE; ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆 { num = SAWTOOTHNEEDLE; ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆 { num = RIBBONNEEDLE; ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆 { num = LASERNEEDLE; ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆 ui->buttonExplanation->setEnabled(false); } else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆 //第一次选完花版进来是绣花数据,然后根据selIdx,切换相应的针杆 { ui->buttonExplanation->setEnabled(false); //针杆按钮切换,切换到绣花的时候,针杆显示不对 num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆 } if(m_combineEmb == -1)//组合绣模式 { num = num * 2;// } else if(m_threeCombineEmb == -1) { num = num * 3;//9个针杆 *3 } for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { QString idxStr; idxStr = getNeedleColorStr(i+1); #if(0) if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx"; } else if(i >= num/2) { idxStr = "EmbNeedle/"+QString::number((i-num/2)+1)+"_coloridx"; } } else { idxStr = "EmbNeedle/"+QString::number(i+1)+"_coloridx"; } #endif if(g_pSettings->ifKeyExists(idxStr) == true) { idx = g_pSettings->readFromIniFile(idxStr).toInt(); rgb = m_pColorBuf[(idx % EMB_BF_SW_ND)]; m_pCurEmbData->setNeedleColorTable(i,idx); } else { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; m_pCurEmbData->setNeedleColorTable(i,i); #if(0) if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; } else if(i >= num/2) { rgb = m_pColorBuf[((i-num/2) % EMB_MC_SW_ND)]; } } else { rgb = m_pColorBuf[(i % EMB_MC_SW_ND)]; } #endif } rgb |= 0xff000000; QColor bkcolor(rgb); QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168); QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";" + " color:" + tcolor.name() + ";"; if(i < num) { if(m_combineEmb == -1)//组合绣模式 { if(i < num/2) { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/2)+1)); } } else if(m_threeCombineEmb == -1) { if(i < num/3)//9*3 = 27 { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } else if(i >= num/3 && i < (num/3)*2) { m_buttonEmbNeedleList[i]->setText("E"+QString::number((i-num/3)+1)); } else if(i >=(num/3)*2) { m_buttonEmbNeedleList[i]->setText("EX"+QString::number((i-(num/3*2))+1)); } } else { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); } //属于冲缝绣,毛巾针步才显示针杆设置按钮,因为有的色序里只有偏移针步 if(m_colorBeginStepCtrl == DATA_SEWING || m_colorBeginStepCtrl == DATA_EMB || m_colorBeginStepCtrl == DATA_PUNCH || m_colorBeginStepCtrl == DATA_CHENILLE || m_colorBeginStepCtrl == DATA_CHAIN || m_colorBeginStepCtrl == DATA_COIL || m_colorBeginStepCtrl == DATA_SAWTOOTH || m_colorBeginStepCtrl == DATA_RIBBON || m_colorBeginStepCtrl == DATA_LASER || m_colorBeginStepCtrl == 0) { m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2); m_buttonEmbNeedleList.at(i)->show(); } else { m_buttonEmbNeedleList.at(i)->hide(); } } else { m_buttonEmbNeedleList.at(i)->hide(); } } } for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { m_buttonEmbNeedleList.at(i)->setChecked(false); m_buttonEmbNeedleList.at(i)->setCheckable(false); } } //刷新色序显示 void ColorOrderSetWidget::refreshColorShow(int colorInPage) { QString str; QString strNeedle; m_colorOrderLimitFlag = 0; int num = 0; getNeedleNum(num);//获取配置文件针杆数量 int colorNum = m_colorTable.size(); m_pageNums = (colorNum + m_itemPerPage - 1)/m_itemPerPage;// 计算页数 if (m_curPages > m_pageNums)// 当前页 { m_curPages = m_pageNums; } if (m_curPages <= 1 && colorNum != 0) { m_curPages = 1; } int colorIdx = (m_curPages-1) * m_itemPerPage; if(colorIdx < 0) { colorIdx = 0; } s16 embHeadnum = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); for (int i = 0; i < m_itemPerPage; i++) { // 颜色显示 if (colorIdx < colorNum) { s16 needleIdx = m_colorTable.at(colorIdx);//花版里的第一个色序,设置成了毛巾1 int colorIdxCp = needleIdx; //大于平绣机头数 if(needleIdx > embHeadnum && needleIdx <= EMB_NEEDLE_NUM) { //等于绣花机时有双头组合功能才有色序设置不合理的判断 if(m_combineEmb == 1 && m_threeCombineEmb == 1)//rq 没有判断有没有组合功能 { m_colorOrderLimitFlag = -1; } } if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { strNeedle = getCurColorTabStr(needleIdx); getCurColorTabValue(needleIdx); } QString idxStr; if(colorInPage == -1) { idxStr = getNeedleColorStr(needleIdx);//needleIdx 针杆索引 } else { if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_LASER;//激光针杆 idxStr = "LaserNeedle/"+QString::number(needleIdx)+"_coloridx"; } else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_SAWTOOTH;//锯齿针杆 idxStr = "SawtoothNeedle/"+QString::number(needleIdx)+"_coloridx"; } else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_COIL;//缠绕针杆 idxStr = "ColiNeedle/"+QString::number(needleIdx)+"_coloridx"; } else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_CHAIN;//链式针杆 idxStr = "TowelNeedle/"+QString::number(needleIdx)+"_coloridx"; } else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_CHENILLE;//毛巾针杆 idxStr = "TowelNeedle/"+QString::number(needleIdx)+"_coloridx"; } else if(colorIdxCp >= EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM) { m_colorBeginStepCtrl = DATA_RIBBON;//盘带针杆 idxStr = "RibbonNeedle/"+QString::number(needleIdx)+"_coloridx"; } else { m_colorBeginStepCtrl = DATA_EMB; idxStr = "EmbNeedle/"+QString::number(needleIdx)+"_coloridx"; } } s16 colorInTab; if(g_pSettings->ifKeyExists(idxStr) == true) { colorInTab = g_pSettings->readFromIniFile(idxStr).toInt(); } else { colorInTab = m_colorTable.at(colorIdx); if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { getCurColorTabValue(colorInTab); } colorInTab -= 1; if(colorInTab < 0){colorInTab = 0;} } // 文件中的色序 QRgb rgb = m_pColorBuf[(colorInTab % EMB_BF_SW_ND)]; rgb |= 0xff000000; QColor bkcolor(rgb); QColor tcolor = QColor(255-bkcolor.red(), 255-bkcolor.green(), 255-bkcolor.blue()).lighter(168); QString cstyle = "outline: none;background-color:" + bkcolor.name() + ";" + " color:" + tcolor.name() + ";"; m_buttonColorOrderList.at(i)->setImageBackColor(cstyle); QString cstyle1 = "outline: none;background-color:rgba(255, 255, 255, 0);color:" + tcolor.name() + ";"; m_buttonColorOrderList.at(i)->setLabelValueStyle(cstyle1); if(needleIdx <= 0) { m_buttonColorOrderList.at(i)->setLabelValue("");//色序里的数字是空 } else { if(m_combineEmb == -1) { if(needleIdx > num) { int idx = needleIdx-num; if(idx > EMB_NEEDLE_NUM) { s16 cidx = needleIdx; QString str = getCurColorTabStr(cidx); getCurColorTabValue(cidx); m_buttonColorOrderList.at(i)->setLabelValue(str+QString::number(cidx)); } else { m_buttonColorOrderList.at(i)->setLabelValue("E"+QString::number(idx)); } } else { m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx)); } } else if(m_threeCombineEmb == -1) { if(needleIdx <= num) { m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx)); } else if(needleIdx>num && needleIdx <= num*2) { m_buttonColorOrderList.at(i)->setLabelValue("E"+QString::number(needleIdx-num)); } else if(needleIdx>num*2 && needleIdx <= num*3) { m_buttonColorOrderList.at(i)->setLabelValue("EX"+QString::number(needleIdx-num*2)); } else { s16 cidx = needleIdx; QString str = getCurColorTabStr(cidx); getCurColorTabValue(cidx); m_buttonColorOrderList.at(i)->setLabelValue(str+QString::number(cidx)); } } else { m_buttonColorOrderList.at(i)->setLabelValue(strNeedle+QString::number(needleIdx)); } } str.sprintf("%d", colorIdx+1); //下方的色序按钮 //设置数字 花版里的色序个数 m_buttonColorOrderList.at(i)->setLabelName(str); m_buttonColorOrderList.at(i)->show(); //选择显示 if (colorIdx == m_curSelectColor) { m_buttonColorOrderList.at(i)->setLabelImageChecked(cstyle); } } else { m_buttonColorOrderList.at(i)->setLabelName(""); m_buttonColorOrderList.at(i)->hide(); } colorIdx++; } // 翻页按钮 if (m_curPages <= 1) { ui->buttonPgUp->setEnabled(false); } else { ui->buttonPgUp->setEnabled(true); } if (m_curPages >= m_pageNums) { ui->buttonPgDn->setEnabled(false); } else { ui->buttonPgDn->setEnabled(true); } // 页信息 if(m_pageNums == 0) { m_curPages = 0; } QString pStr = tr("pageNum: ") + QString("%1/%2").arg(m_curPages).arg(m_pageNums);//页数: ui->labelPage->setText(pStr); } //刷新花样选中的色序显示(刷新花样部分线迹) void ColorOrderSetWidget::refreshPatternCurColorShow() { if(m_curSelectColor < 0) { return; } int beginIdx, endIdx; if(m_colorTable.size() == 1)//只有一个换色 { endIdx = m_pCurEmbData->getStitchNums(); m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); beginIdx = 1; } else { //获取起始针步和换色后第一个针步的针步属性(非跳针跨步等) m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); if(m_curSelectColor+1 == m_colorTable.size())//当前选择颜色数等于总的颜色数 { endIdx = m_pCurEmbData->getStitchNums(); } else { m_pCurEmbData->getNeedleIdxFromColorIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl); } } m_pCurEmbData->setGreyAreaRange(m_greyBeginStep,m_greyEndStep); m_pCurEmbData->setDispAreaRange(beginIdx,endIdx,0); if (m_refreshColorOrder == -1) { m_pCurEmbData->setDispMode(EmbData::DISP_ALL_NORMAL, 1, 1); // 重新画灰图 不刷新花版中的色序 } else { m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重新画灰图 ui->labelCurColorNumValue->setText(QString::number(m_curSelectColor+1)); ui->labelBeginIdxValue->setText(QString::number(beginIdx)); ui->labelEndIdxValue->setText(QString::number(endIdx)); } m_greyBeginStep = beginIdx;//灰色起始 m_greyEndStep = endIdx; //灰色结束 QPixmap patternPix = m_pCurEmbData->getPreviewImage(); ui->labelPatternView->setPixmap(patternPix); //根据 beginStepCtrl 切换到相应针杆设置 int num = 0; getNeedleNum(num); s16 selIdx = m_colorTable[m_curSelectColor]; int idx = selIdx; if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { getCurColorTabValue(selIdx); } QString str; if(selIdx <= 0) { str = tr("Not set");//未设置 } else { if(m_combineEmb == -1) { if(selIdx <= num)//selIdx 总针杆的索引 , num 针杆个数 { str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆 } else { str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆 } } else if (m_threeCombineEmb == -1)//三头组合绣 { if(selIdx <= num) { str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆 } else if(selIdx>num && selIdx <= num*2) { str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆 } else { str = tr("Head 3 Needle ") + QString::number(selIdx-num*2);//针杆 } } else { QString typeStr; typeStr = getCurColorTabStr(idx); str = typeStr + QString::number(selIdx);//针杆 } } ui->labelNeedleSelectValue->setText(str);// 右下角显示当前色序的针杆 ui->buttonColorSetLock->setEnabled(true);//右上方色序设定解锁按钮可按 } //获取配置文件针杆数量 void ColorOrderSetWidget::getNeedleNum(int &num) { if(m_colorBeginStepCtrl == 0)//界面没打开的时候,进来这个里边 { num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆 return; } if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示毛巾针杆 } else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆 } else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆 { num = COILNEEDLE; ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆 { num = SAWTOOTHNEEDLE; ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆 { num = RIBBONNEEDLE; ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆 ui->buttonExplanation->setEnabled(true); } else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆 { num = LASERNEEDLE; ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆 ui->buttonExplanation->setEnabled(false); } else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆 //第一次选完花版进来是绣花数据,然后根据selIdx,切换相应的针杆 { ui->buttonExplanation->setEnabled(false); //针杆按钮切换,切换到绣花的时候,针杆显示不对 num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆 } else { ui->buttonExplanation->setEnabled(false); num = 0; //非冲缝绣针步 ui->buttonNeedle->setText(tr("Non needle step"));//非下针针步 } } void ColorOrderSetWidget::switchNeedleNum(int &num) { //m_curSelectColor 花版中的第几个色序 //m_colorTable 色序表 //selIdx 色序表里的色序 0就是没有色序 if(m_colorTable.size() <= 0) { return; } int selIdx = m_colorTable[m_curSelectColor]; if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { /*如果是dsr文件,有多种属性的针步时(或者dst文件),绣花针步可能会设置为其他色序, * 此时点击色序设定按钮时需要切换为相应设置的针杆*/ if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆 { num=LASERNEEDLE; ui->buttonNeedle->setText(tr("Laser (L):"));//激光针杆 m_colorBeginStepCtrl = DATA_LASER; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆 { num = SAWTOOTHNEEDLE; ui->buttonNeedle->setText(tr("Sawtooth (Z):"));//锯齿针杆 m_colorBeginStepCtrl = DATA_SAWTOOTH; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆 { num = COILNEEDLE; ui->buttonNeedle->setText(tr("Coil (W):"));//缠绕针杆 m_colorBeginStepCtrl = DATA_COIL; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM)//链式针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt();//链式针杆和毛巾针杆是相同的 ui->buttonNeedle->setText(tr("Chain (C):"));//链式针杆 m_colorBeginStepCtrl = DATA_CHAIN; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示的毛巾针杆 m_colorBeginStepCtrl = DATA_CHENILLE; } //selIdx =51 当前选择的是盘带针杆 else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//盘带针杆 盘带 缠绕 平绣 { num = RIBBONNEEDLE; ui->buttonNeedle->setText(tr("Ribbon (R):"));//盘带针杆 m_colorBeginStepCtrl = DATA_RIBBON; } else { if(g_emMacType == MACHINE_EMB && g_emProductType == PRODUCT_CHEN)//绣花机且为纯毛巾 { num = g_pSettings->readFromIniFile("TowelNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Chenille (T):"));//毛巾针杆 //显示的毛巾针杆 m_colorBeginStepCtrl = DATA_CHENILLE; } else { num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆 m_colorBeginStepCtrl = DATA_EMB; } } } else { num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); ui->buttonNeedle->setText(tr("Emb (F):"));//绣花针杆 } } //获取配置文件针杆颜色索引字符 QString ColorOrderSetWidget::getNeedleColorStr(s16 idx) { QString idxStr; idxStr.clear(); if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆 { idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆 { idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆 { idxStr = "ColiNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆 { idxStr = "SawtoothNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆 { idxStr = "RibbonNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆 { idxStr = "LaserNeedle/"+QString::number(idx)+"_coloridx"; } else if(m_colorBeginStepCtrl == DATA_EMB)//绣花针杆 { idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆 if(m_curSelectColor < 0){return idxStr;} int selIdx = m_colorTable[m_curSelectColor]; if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { /*如果是dsr文件,有多种属性的针步时(或者dst文件),绣花针步可能会设置为其他色序 * 此时点击色序设定按钮时需要切换为相应设置的针杆*/ if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆 { idxStr = "LaserNeedle/"+QString::number(idx)+"_coloridx"; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆 { idxStr = "SawtoothNeedle/"+QString::number(idx)+"_coloridx"; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆 { idxStr = "CoilNeedle/"+QString::number(idx)+"_coloridx"; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM)//链式针杆 { idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx"; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆 { idxStr = "TowelNeedle/"+QString::number(idx)+"_coloridx"; } else if(selIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+ SEW_NEEDLE_NUM)//盘带 { idxStr = "RibbonNeedle/"+QString::number(idx)+"_coloridx"; } else { idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆 } } else { idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx";//绣花针杆 } } else { idxStr = "EmbNeedle/"+QString::number(idx)+"_coloridx"; } return idxStr; } //刷新色序锁定按钮 void ColorOrderSetWidget::refreshLockBtn() { SetControlStyle setControlStyle; setControlStyle.setUiName(this->objectName()); if(m_colorSetBtnLockFlag == 1)//锁住 { ui->buttonColorSetLock->setCheckable(true); ui->buttonColorSetLock->setChecked(true); ui->buttonColorSetLock->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorSetLock->objectName())); ui->buttonNeedle->setStyleSheet(LABELWHITESTYLE); ui->buttonNeedle->setEnabled(false);//针杆按钮不可按 } else//解锁 { ui->buttonColorSetLock->setChecked(false); ui->buttonColorSetLock->setCheckable(false); ui->buttonColorSetLock->setTopImage(setControlStyle.getTopStyleSheet(ui->buttonColorSetLock->objectName()+"_unlock")); ui->buttonNeedle->setStyleSheet(BUTTONWHITESTYLE); ui->buttonNeedle->setEnabled(true);//针杆按钮可按 } } void ColorOrderSetWidget::initTowelHeightValue() { int num = TOWELHIGHRANGE; QString cstyle = "background-color: rgba(245, 245, 245);color: rgba(0, 0, 0);"; for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { if(i < num) { m_buttonEmbNeedleList[i]->setText(QString::number(i+1)); m_buttonEmbNeedleList.at(i)->setStyleSheet(m_buttonStyle1 + cstyle + "}" + m_buttonStyle2); m_buttonEmbNeedleList.at(i)->show(); } else { m_buttonEmbNeedleList.at(i)->hide(); } } for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { m_buttonEmbNeedleList.at(i)->setChecked(false); m_buttonEmbNeedleList.at(i)->setCheckable(false); } } void ColorOrderSetWidget::refreshTowelHeightShow() { QString str; int colorNum = m_colorTable.size(); m_pageNums = (colorNum + m_itemPerPage - 1)/m_itemPerPage;// 计算页数 if (m_curPages > m_pageNums)// 当前页 { m_curPages = m_pageNums; } if (m_curPages <= 1 && colorNum != 0) { m_curPages = 1; } int colorIdx = (m_curPages-1) * m_itemPerPage; if(colorIdx < 0) { colorIdx = 0; } for (int i = 0; i < m_itemPerPage; i++) { // 颜色显示 if (colorIdx < colorNum) { int needleIdx = m_colorTable.at(colorIdx); if(needleIdx <= 0) { m_buttonColorOrderList.at(i)->setLabelValue("");//数字是空 } else { m_buttonColorOrderList.at(i)->setLabelValue(QString::number(needleIdx)); } str.sprintf("%d", colorIdx+1); //下方的按钮 //设置数字 m_buttonColorOrderList.at(i)->setLabelName(str); QString cstyle = "outline: none;background-color:rgba(245, 245, 245);color: rgba(0, 0, 0);"; QString cstyle1 = "outline: none;background-color:rgba(255, 255, 255, 0);color: rgba(0, 0, 0);"; m_buttonColorOrderList.at(i)->setImageBackColor(cstyle); m_buttonColorOrderList.at(i)->setLabelValueStyle(cstyle1); //选择显示 if (colorIdx == m_curSelectColor) { m_buttonColorOrderList.at(i)->setLabelImageChecked(cstyle); } m_buttonColorOrderList.at(i)->show(); } else { m_buttonColorOrderList.at(i)->setLabelName(""); m_buttonColorOrderList.at(i)->hide(); } colorIdx++; } // 翻页按钮 if (m_curPages <= 1) { ui->buttonPgUp->setEnabled(false); } else { ui->buttonPgUp->setEnabled(true); } if (m_curPages >= m_pageNums) { ui->buttonPgDn->setEnabled(false); } else { ui->buttonPgDn->setEnabled(true); } // 页信息 if(m_pageNums == 0) { m_curPages = 0; } QString pStr = tr("pageNum: ") + QString("%1/%2").arg(m_curPages).arg(m_pageNums);//页数: ui->labelPage->setText(pStr); } void ColorOrderSetWidget::refreshPatternCurTowelHeightShow() { if(m_curSelectColor < 0) { return; } int beginIdx, endIdx; if(m_colorTable.size() == 1)//只有一个毛巾高度 { endIdx = m_pCurEmbData->getStitchNums(); if(m_fileType == FILE_TYPE_DSR) { m_pCurEmbData->getNeedleIdxFromTowelHighIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); } else if(m_fileType == FILE_TYPE_DST) { m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); } beginIdx = 1; } else { //获取起始针步和换毛巾高度后第一个针步的针步属性(非跳针跨步等) if(m_fileType == FILE_TYPE_DSR) { m_pCurEmbData->getNeedleIdxFromTowelHighIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); } else if(m_fileType == FILE_TYPE_DST) { m_pCurEmbData->getNeedleIdxFromColorIdx(beginIdx, m_curSelectColor+1, m_colorBeginStepCtrl); } if(m_curSelectColor+1 == m_colorTable.size())//当前选择数等于总数 { endIdx = m_pCurEmbData->getStitchNums(); } else { if(m_fileType == FILE_TYPE_DSR) { m_pCurEmbData->getNeedleIdxFromTowelHighIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl); } else if(m_fileType == FILE_TYPE_DST) { m_pCurEmbData->getNeedleIdxFromColorIdx(endIdx, m_curSelectColor+2, m_colorEndStepCtrl); } } } m_pCurEmbData->setGreyAreaRange(m_greyBeginStep,m_greyEndStep); m_pCurEmbData->setDispAreaRange(beginIdx,endIdx,0); m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重新画灰图 m_greyBeginStep = beginIdx;//灰色起始 m_greyEndStep = endIdx; //灰色结束 QPixmap patternPix = m_pCurEmbData->getPreviewImage(); ui->labelPatternView->setPixmap(patternPix); ui->labelCurColorNumValue->setText(QString::number(m_curSelectColor+1)); ui->labelBeginIdxValue->setText(QString::number(beginIdx)); ui->labelEndIdxValue->setText(QString::number(endIdx)); int selIdx = m_colorTable[m_curSelectColor]; QString str; if(selIdx <= 0) { str = tr("Not set");//未设置 } else { str = QString::number(selIdx);//针杆 } ui->labelNeedleSelectValue->setText(str);// 右下角显示当前索引 } QString ColorOrderSetWidget::getCurColorTabStr(s16 needleIdx) { QString strNeedle; strNeedle.clear(); if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆 { strNeedle = tr("L"); } else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆 { strNeedle = tr("Z"); } else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM +CHAIN_NEEDLE_NUM)//缠绕针杆 { strNeedle = tr("W"); } else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM)//链式针杆 { strNeedle = tr("C"); } else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆 { strNeedle = tr("T"); } else if(needleIdx > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//盘带针杆 { strNeedle = tr("R"); } else { strNeedle = tr("F"); } return strNeedle; } void ColorOrderSetWidget::getCurColorTabValue(s16 &colorInTab) { if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM)//激光针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM); } else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM)//锯齿针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM); } else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM)//缠绕针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM); } else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM)//链式针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+ TOWEL_NEEDLE_NUM); } else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM)//毛巾针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM); } else if(colorInTab > EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM)//缠绕针杆 { colorInTab -= (EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM + SEW_NEEDLE_NUM); } } //设置类型图标 void ColorOrderSetWidget::setTypeLogo(QString tStyle) { ui->buttonTypeLogo->setUnPreBtnLogo(tStyle); } //设置主title void ColorOrderSetWidget::setMainTitle(QString str) { ui->labelMainTitle->setText(str); } void ColorOrderSetWidget::setSubTitle(QString str) { ui->labelSubTitle->setText(str); } void ColorOrderSetWidget::show(QString filePath) { ui->buttonColorSetLock->setVisible(true);//右上方解锁按钮 m_colorSetBtnLockFlag = 1;//锁住 refreshLockBtn(); QFileInfo file(filePath); QString ext = file.suffix().toUpper(); m_pCurEmbData->setViewInfo(ui->labelPatternView->width(),ui->labelPatternView->height()); m_pCurEmbData->clear(); if(ext == "DST")//dst文件 { DataFileDst dst; dst.initFile(filePath); dst.convertDataToAbs(); m_pCurEmbData->appendAEmbAbsFile(filePath,dst.getEmbAbsData());//生成文件信息 m_colorTable.resize(dst.getColorNums()); } else if(ext == "DSR")//dsr文件 { DataFileDsr dsr; dsr.initFile(filePath); dsr.convertDataToEmbAbs(); m_pCurEmbData->appendAEmbAbsFile(filePath,dsr.getEmbAbsData());//生成文件信息 m_colorTable.resize(dsr.getColorNums()); } m_pCurEmbData->getDsDat(); //转换为ds16数据后设置色序表 m_pCurEmbData->setDs16ColorOfTable((u8*)m_colorTable.data()); m_pCurEmbData->setEmbData(); m_greyBeginStep = 0;//灰色起始 m_greyEndStep = m_pCurEmbData->getStitchNums(); //灰色结束 QFileInfo info(filePath); QString fileName = info.fileName(); int size = fileName.length(); if(size > NAMEMAXLENGTH+12)//花样名称过长时截取 { fileName = fileName.mid(0,NAMEMAXLENGTH+12) + "~"; } ui->labelNameValue->setText(fileName); if(size <= 0)//未选择文件时 { ui->labelTotalNeedleValue->setText(""); ui->labelTotalColorValue->setText(""); } else { ui->labelTotalNeedleValue->setText(QString::number(m_pCurEmbData->getStitchNums())); ui->labelTotalColor->setText(tr("Total color:"));//总颜色数: ui->labelTotalColorValue->setText(QString::number(m_pCurEmbData->getColorNums())); } m_curSelectColor = 0; if(m_buttonColorOrderList.size() > 0) { m_pColorBtn = m_buttonColorOrderList.at(0);//默认选中(等于)第一个色序按钮 } refreshPatternCurColorShow(); refreshColorShow(1); initNeedleBar(); #if(0) ui->labelCurColorNumValue->setText(""); ui->labelBeginIdxValue->setText(""); ui->labelEndIdxValue->setText(""); ui->labelNeedleSelectValue->setText(""); #endif QWidget::show(); } void ColorOrderSetWidget::showTowelHeight(QString filePath) { m_colorSetBtnLockFlag = 1;//锁住 ui->buttonNeedle->setStyleSheet(LABELWHITESTYLE); ui->buttonNeedle->setEnabled(false);//针杆按钮不可按 initTowelHeightValue(); QFileInfo file(filePath); QString ext = file.suffix().toUpper(); m_pCurEmbData->setViewInfo(ui->labelPatternView->width(),ui->labelPatternView->height()); m_pCurEmbData->clear(); if(ext == "DST")//dst文件 { m_fileType = FILE_TYPE_DST; DataFileDst dst; dst.initFile(filePath); dst.convertDataToAbs(); m_pCurEmbData->appendAEmbAbsFile(filePath,dst.getEmbAbsData());//生成文件信息 m_colorTable.resize(dst.getColorNums()); } else if(ext == "DSR")//dsr文件 { m_fileType = FILE_TYPE_DSR; DataFileDsr dsr; dsr.initFile(filePath); dsr.convertDataToEmbAbs(); m_pCurEmbData->appendAEmbAbsFile(filePath,dsr.getEmbAbsData());//生成文件信息 m_colorTable.resize(dsr.getTowelHighNums()); } m_pCurEmbData->getDsDat(); m_pCurEmbData->setEmbData(); m_greyBeginStep = 0;//灰色起始 m_greyEndStep = m_pCurEmbData->getStitchNums(); //灰色结束 QFileInfo info(filePath); QString fileName = info.fileName(); int size = fileName.length(); if(size > NAMEMAXLENGTH+12)//花样名称过长时截取 { fileName = fileName.mid(0,NAMEMAXLENGTH+12) + "~"; } ui->labelNameValue->setText(fileName); if(size <= 0)//未选择文件时 { ui->labelTotalNeedleValue->setText(""); ui->labelTotalColorValue->setText(""); } else { ui->labelTotalNeedleValue->setText(QString::number(m_pCurEmbData->getStitchNums())); ui->labelTotalColor->setText(tr("Total high Num:"));//总高度数: ui->labelTotalColorValue->setText(QString::number(m_pCurEmbData->getTowelHighNums())); } m_curSelectColor = 0; if(m_buttonColorOrderList.size() > 0) { m_pColorBtn = m_buttonColorOrderList.at(0);//默认选中(等于)第一个按钮 } refreshPatternCurTowelHeightShow(); refreshTowelHeightShow(); #if(0) ui->labelCurColorNumValue->setText(""); ui->labelBeginIdxValue->setText(""); ui->labelEndIdxValue->setText(""); ui->labelNeedleSelectValue->setText(""); #endif QWidget::show(); } void ColorOrderSetWidget::setColorTable(QByteArray table,s16 combineMode) { ui->labelCurColorNum->setText(tr("Color num:"));//当前色序: ui->labelNeedleSelect->setText(tr("Needle:"));//针杆选择: m_setType = TYPE_COLORSET; int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能 //这里用是否有毛巾功能做判断,是因为有毛巾功能时会有毛巾高度设置功能,毛巾高度设置会把以下按钮全部隐藏 //这里需要根据配置再显示出来 if((towel == 1)|| (g_emProductType == PRODUCT_CHEN) ) { int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能 if(coil == 1) { ui->buttonExplanation->setVisible(true);//缠绕的解释说明 } else { ui->buttonExplanation->setVisible(false); } int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能 if(laser == 1) { ui->buttonColorLaser->setVisible(true);//设置激光的快捷色序 } else { ui->buttonColorLaser->setVisible(false); } int combineEmb = g_pSettings->readFromInHMIiFile("HMI/combineEmb").toInt();//是否有双头组合绣功能 //是否显示双头组合按钮 if(combineEmb == 1) { ui->buttonCombineEmb->setVisible(true); } else { ui->buttonCombineEmb->setVisible(false); } int threeCombineEmb = g_pSettings->readFromInHMIiFile("HMI/threeCombineEmb").toInt();//是否有三头组合绣功能 //是否显示双头组合按钮 if(threeCombineEmb == 1) { ui->buttonThreeCombineEmb->setVisible(true); } else { ui->buttonThreeCombineEmb->setVisible(false); } int headEmb = g_pSettings->readFromInHMIiFile("HMI/headEmb").toInt();//是否有隔头绣功能 //是否显示隔头绣按钮 if(headEmb == 1) { ui->buttonHeadEmb->setVisible(true); } else { ui->buttonHeadEmb->setVisible(false); } //右上方色序锁住按钮是否可见 if((g_emMacType == MACHINE_EMB && towel ==1)|| //绣花机带毛巾 (g_emMacType == MACHINE_EMB && coil ==1)|| //绣花机带缠绕 (g_emMacType == MACHINE_EMB && laser ==1) //绣花机带激光 ) { ui->buttonColorSetLock->setVisible(true); } else { ui->buttonColorSetLock->setVisible(false); } } if(combineMode != 0) { m_combineEmbFirst = combineMode; } m_combineEmb = combineMode; if(m_combineEmb == 0) { m_combineEmb = 1; } if(combineMode == -1)//双头组合模式清空工作机头缓存 { //memset(m_headBuf, 0, sizeof(m_headBuf)); ui->buttonHeadEmb->setEnabled(false);//隔头不可用 ui->buttonCombineEmb->setCheckable(true); ui->buttonCombineEmb->setChecked(true); } else { ui->buttonHeadEmb->setEnabled(true);//隔头可用 ui->buttonCombineEmb->setCheckable(true); ui->buttonCombineEmb->setChecked(false); } m_beforeColorTable.clear(); m_beforeColorTable.append(table); m_colorTable.clear(); m_colorTable.append(table); } void ColorOrderSetWidget::setTowelHighTable(QByteArray table) { m_setType = TYPE_TOWELHIGHSET; ui->buttonHeadEmb->setVisible(false);//隔头不可用 ui->buttonColorLaser->setVisible(false); ui->buttonCombineEmb->setVisible(false); ui->buttonThreeCombineEmb->setVisible(false); ui->buttonColorSetLock->setVisible(false); ui->buttonExplanation->setVisible(false); ui->buttonNeedle->setText(tr("Towel high:"));//毛巾高度: ui->labelCurColorNum->setText(tr("High index:"));//高度索引: ui->labelNeedleSelect->setText(tr("High value:"));//高度值: m_beforeColorTable.clear(); m_beforeColorTable.append(table); m_colorTable.clear(); m_colorTable.append(table); } void ColorOrderSetWidget::setThreeColorTable(QByteArray table,s16 threeCombineMode) { if(threeCombineMode != 0) { m_threeCombineEmbFirst = threeCombineMode; } m_threeCombineEmb = threeCombineMode; if(m_threeCombineEmb == 0) { m_threeCombineEmb = 1; } if(m_threeCombineEmb == -1)//双头组合模式清空工作机头缓存 { //memset(m_headBuf, 0, sizeof(m_headBuf)); ui->buttonHeadEmb->setEnabled(false);//隔头不可用 ui->buttonThreeCombineEmb->setCheckable(true); ui->buttonThreeCombineEmb->setChecked(true); } else { ui->buttonHeadEmb->setEnabled(true);//隔头可用 ui->buttonThreeCombineEmb->setCheckable(true); ui->buttonThreeCombineEmb->setChecked(false); } m_beforeColorTable.clear(); m_beforeColorTable.append(table); m_colorTable.clear(); m_colorTable.append(table); } //初始化隔头绣数据 void ColorOrderSetWidget::initHeadBuf(QString filePath) { QFile file(filePath + ".fcg"); if(file.exists())//存在fcg文件 { if(file.open(QIODevice::ReadOnly)) { QByteArray ary = file.readAll(); if((u32)ary.size() >= sizeof(DataFileHead)+HEADBUF) { memcpy(m_headBuf,ary.data()+sizeof(DataFileHead),sizeof(m_headBuf)); } } file.close(); } } void ColorOrderSetWidget::slotResetHeadBuf(u8 *buf) { if(buf != NULL) { memcpy(m_headBuf,buf,sizeof(m_headBuf)); } } void ColorOrderSetWidget::slotSetEmbDatNeedleTable() { int idx = 0; for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { QString idxStr; idxStr = getNeedleColorStr(i+1); if(g_pSettings->ifKeyExists(idxStr) == true) { idx = g_pSettings->readFromIniFile(idxStr).toInt(); m_pCurEmbData->setNeedleColorTable(i,idx); } else { m_pCurEmbData->setNeedleColorTable(i,i); } } } void ColorOrderSetWidget::colorOrderBtnClick() { int idx = 0; m_pColorBtn = (MyButton*) this->sender(); if(m_pColorBtn == NULL) { return; } for(int i = 0; i < m_buttonColorOrderList.size(); i++) { if(m_pColorBtn == m_buttonColorOrderList.at(i)) { idx = i; } } // int beforeColor = m_curSelectColor;//上一次选择的色序 m_curSelectColor = (m_curPages - 1) * m_itemPerPage + idx; //针杆按钮不选中 if(m_pEmbNeedleBtn != NULL) { m_pEmbNeedleBtn->setChecked(false); m_pEmbNeedleBtn->setCheckable(false); } if(m_setType == TYPE_COLORSET)//色序设定 { refreshColorShow(1); refreshPatternCurColorShow();//右下角花样数据 initNeedleBar(); } else if(m_setType == TYPE_TOWELHIGHSET) { refreshTowelHeightShow(); refreshPatternCurTowelHeightShow(); } } //针杆按钮被按下 void ColorOrderSetWidget::embNeedleBtnPressed() { m_pEmbNeedleBtn = (QPushButton*) this->sender(); m_pEmbNeedleBtn->setCheckable(true); m_pEmbNeedleBtn->setChecked(true); } //针杆按钮抬起 void ColorOrderSetWidget::embNeedleBtnReleased() { if(m_pColorBtn == NULL || m_pEmbNeedleBtn == NULL || m_curSelectColor == -1) { //按钮都不选中 for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { m_buttonEmbNeedleList.at(i)->setChecked(false); m_buttonEmbNeedleList.at(i)->setCheckable(false); } return; } int btnIdx = 0; for(int i = 0; i < m_buttonEmbNeedleList.size(); i++) { if(m_pEmbNeedleBtn == m_buttonEmbNeedleList.at(i)) { btnIdx = i+1; } m_buttonEmbNeedleList.at(i)->setChecked(false); m_buttonEmbNeedleList.at(i)->setCheckable(false); } if(m_setType == TYPE_TOWELHIGHSET)//毛巾高度设置 { if(m_curSelectColor >= 0) { if(m_curSelectColor >= m_colorTable.size()) { return; } //int colorInTab = m_colorTable.at(m_curSelectColor); //if (colorInTab != btnIdx) { // 设置数据中的色序 m_colorTable[m_curSelectColor] = btnIdx; emit siChangeTowelHighTable(m_curSelectColor,btnIdx); QString str = tr("High ") + QString::number(btnIdx);//高度 ui->labelNeedleSelectValue->setText(str); //当前色序设定完成后自动跳到下一色序 if(m_curSelectColor < m_colorTable.size() - 1) { m_curSelectColor += 1;//花版中的第几个色序 } refreshTowelHeightShow(); refreshPatternCurTowelHeightShow(); } } return; } int num = 0; getNeedleNum(num);//显示当前的色序的针杆 #if(0) if(m_combineEmb == -1)//组合模式 { if(btnIdx > num) { btnIdx = btnIdx-num; } } #endif int colorInPage = btnIdx; if(m_colorBeginStepCtrl == DATA_LASER)//激光针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM; } else if(m_colorBeginStepCtrl == DATA_SAWTOOTH)//锯齿针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM; } else if(m_colorBeginStepCtrl == DATA_COIL)//缠绕针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM; } else if(m_colorBeginStepCtrl == DATA_CHAIN)//链式针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM +RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM; } else if(m_colorBeginStepCtrl == DATA_CHENILLE)//毛巾针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM; } else if(m_colorBeginStepCtrl == DATA_RIBBON)//盘带针杆 { colorInPage += EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM+SEW_NEEDLE_NUM; } if(m_curSelectColor >= 0) { int colorInTab = m_colorTable.at(m_curSelectColor); // 文件中的色序 if (colorInTab != colorInPage) { m_colorTable[m_curSelectColor] = colorInPage; emit siChangeColorTable(m_curSelectColor,colorInPage);//针杆写入色序表 } s16 selIdx = m_colorTable[m_curSelectColor]; if(m_combineEmb == 1&& m_threeCombineEmb == 1)//非组合绣模式 { getCurColorTabValue(selIdx); } QString str; if(selIdx <= 0) { str = tr("Not set");//未设置 } else { if(m_combineEmb == -1) { if(selIdx <= num) { str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆 } else { str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆 } } else if (m_threeCombineEmb == -1)//三头组合绣 { if(selIdx <= num) { str = tr("Head 1 Needle ") + QString::number(selIdx);//针杆 } else if(selIdx>num && selIdx <= num*2) { str = tr("Head 2 Needle ") + QString::number(selIdx-num);//针杆 } else { str = tr("Head 3 Needle ") + QString::number(selIdx-num*2);//针杆 } } else { str = tr("Needle ") + QString::number(selIdx);//针杆 } } ui->labelNeedleSelectValue->setText(str); //当前色序设定完成后自动跳到下一色序 if(m_curSelectColor < m_colorTable.size() - 1) { m_curSelectColor += 1;//花版中的第几个色序 } refreshColorShow(colorInPage); refreshPatternCurColorShow(); initNeedleBar();//下一个色序针杆变,在这个函数里 } } void ColorOrderSetWidget::on_buttonPgUp_clicked() { m_curPages--; refreshColorShow(); } void ColorOrderSetWidget::on_buttonPgDn_clicked() { m_curPages++; refreshColorShow(); } void ColorOrderSetWidget::on_buttonOk_clicked() { if(m_setType == TYPE_COLORSET)//色序设定 { //非组合模式且针位设置超限 if(m_combineEmb == 1 && m_threeCombineEmb == 1 && m_colorOrderLimitFlag == -1) { PromptDialog dlg(this); dlg.initDialog(PromptDialog::BTN_OK); dlg.setTitleStr(tr("Prompt")); dlg.setContentStr(tr("Color order setting is unreasonable, please reset!"));//色序设定不合理,请重新设置! dlg.exec(); return; } if(m_combineEmb == -1)//组合模式设置机头工作缓存区(绣花机才有) { int num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); int size = 16;//16个字节 s8 evenVal = 85;//偶 0101 0101 s8 oddVal = -86;//奇 1010 1010 s8 allVal = 0;//全部工作 0000 0000 int colorNum = m_colorTable.size(); for(int i = 0 ; i < colorNum; i++) { int needleIdx = m_colorTable.at(i); for(int j = 0; j < size; j++) { if(needleIdx > num) { m_headBuf[i*size+j] = evenVal; } else if(needleIdx <= 0) { m_headBuf[i*size+j] = allVal; } else { m_headBuf[i*size+j] = oddVal; } } } } else if(m_threeCombineEmb ==-1)//三头组合绣 { int num = g_pSettings->readFromIniFile("EmbNeedle/number").toInt(); int size = 16;//16个字节 s8 Val1 = 182;// 1011 0110 s8 Val2 = 109;// 0110 1101 s8 Val3 = 219;// 1101 1011 s8 Val4 = 109;// 0110 1101 s8 Val5 = 219;// 1101 1011 s8 Val6 = 182;// 1011 0110 s8 Val7 = 219;// 1101 1011 s8 Val8 = 182;// 1011 0110 s8 Val9 = 109;// 0110 1101 int colorNum = m_colorTable.size(); for(int i = 0 ; i < colorNum; i++) { int needleIdx = m_colorTable.at(i); for(int j = 0; j < size; j++) { if(needleIdx <= num) { int k= j%3; if(k == 0) { m_headBuf[i*size+j] = Val1; } else if(k == 1) { m_headBuf[i*size+j] = Val2; } else if(k == 2) { m_headBuf[i*size+j] = Val3; } } else if(needleIdx <= num*2 && needleIdx > num) { int k= j%3; if(k == 0) { m_headBuf[i*size+j] = Val4; } else if(k == 1) { m_headBuf[i*size+j] = Val5; } else if(k == 2) { m_headBuf[i*size+j] = Val6; } } else { int k= j%3; if(k == 0) { m_headBuf[i*size+j] = Val7; } else if(k == 1) { m_headBuf[i*size+j] = Val8; } else if(k == 2) { m_headBuf[i*size+j] = Val9; } } } } } emit siBackHome(m_combineEmb,m_threeCombineEmb); } else if(m_setType == TYPE_TOWELHIGHSET) { emit siTowelHighBackHome(); } this->hide(); } void ColorOrderSetWidget::on_buttonCancel_clicked() { if(m_combineEmbFirst == 1 || m_threeCombineEmbFirst == 1)//非组合绣模式 或者三头组合绣模式 { ui->buttonCombineEmb->setCheckable(true); ui->buttonCombineEmb->setChecked(false); ui->buttonHeadEmb->setEnabled(true); siSetHeadEmbBtnEnable(true); } else//组合绣模式 { ui->buttonCombineEmb->setCheckable(true); ui->buttonCombineEmb->setChecked(true); ui->buttonHeadEmb->setEnabled(false); siSetHeadEmbBtnEnable(false); } //恢复之前的色序表 if(m_setType == TYPE_COLORSET) { emit siCancelChangeColor(m_beforeColorTable); } else if(m_setType == TYPE_TOWELHIGHSET) { emit siCancelChangeTowelHigh(m_beforeColorTable); } this->hide(); } //色序循环 void ColorOrderSetWidget::on_buttonColorOrderCycle_clicked() { QByteArray cycleTable; cycleTable.clear(); //拷贝循环列表 for(int i = 0; i < m_colorTable.length(); i++) { int colorInTab = m_colorTable.at(i); // 色序 if(colorInTab != 0) { cycleTable.append(m_colorTable[i]); } else { break; } } if(cycleTable.length() <= 0) { return; } //将循环列表循环复制到m_colorTable中 for(int i = 0; i < m_colorTable.length();) { memcpy((char*)m_colorTable.data() + i,(char*)cycleTable.data(),cycleTable.length()); i += cycleTable.length(); } for(int i = 0; i < m_colorTable.length(); i++) { int colorInTab = m_colorTable.at(i); // 色序 if(m_setType == TYPE_COLORSET) { emit siChangeColorTable(i,colorInTab); } else if(m_setType == TYPE_TOWELHIGHSET) { emit siChangeTowelHighTable(i,colorInTab); } } if(m_setType == TYPE_COLORSET) { m_pCurEmbData->setGreyAreaRange(0,m_pCurEmbData->getStitchNums()); m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重绘 QPixmap patternPix = m_pCurEmbData->getPreviewImage(); ui->labelPatternView->setPixmap(patternPix); m_curSelectColor = -1; refreshColorShow(1); } else if(m_setType == TYPE_TOWELHIGHSET) { m_curSelectColor = -1; refreshTowelHeightShow(); } } //色序清空 void ColorOrderSetWidget::on_buttonColorOrderClear_clicked() { for(int i = 0; i < m_colorTable.length(); i++) { m_colorTable[i] = 0;//清空 int colorInTab = m_colorTable.at(i); // 色序 if(m_setType == TYPE_COLORSET) { emit siChangeColorTable(i,colorInTab); } else if(m_setType == TYPE_TOWELHIGHSET) { emit siChangeTowelHighTable(i,colorInTab); } } if(m_setType == TYPE_COLORSET) { m_pCurEmbData->setGreyAreaRange(0,m_pCurEmbData->getStitchNums()); m_pCurEmbData->setDispAreaRange(0,0); m_pCurEmbData->setDispMode(EmbData::DISP_ALL_AREA, 1, 1); // 重绘 QPixmap patternPix = m_pCurEmbData->getPreviewImage(); ui->labelPatternView->setPixmap(patternPix); m_curSelectColor = -1; refreshColorShow(); } else if(m_setType == TYPE_TOWELHIGHSET) { m_curSelectColor = -1; refreshTowelHeightShow(); } } void ColorOrderSetWidget::on_buttonHeadEmb_clicked() { emit siHeadEmb();//发送隔头绣设置的信号 } void ColorOrderSetWidget::on_buttonCombineEmb_clicked() { m_combineEmb *= -1; if(m_combineEmb == 1)//非双头组合绣模式 { ui->buttonCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中 ui->buttonCombineEmb->setChecked(false); ui->buttonHeadEmb->setEnabled(true);//false ,按钮就不可点击,设置成true,按钮就可以点击。 emit siSetHeadEmbBtnEnable(true); } else//双头组合绣模式 { m_threeCombineEmb = 1; ui->buttonThreeCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中 ui->buttonThreeCombineEmb->setChecked(false); ui->buttonCombineEmb->setCheckable(true); ui->buttonCombineEmb->setChecked(true);//setChecked(true)为属性的值,表示已经选中 ui->buttonHeadEmb->setEnabled(false); emit siSetHeadEmbBtnEnable(false); } initNeedleBar(); refreshColorShow(); } void ColorOrderSetWidget::on_buttonThreeCombineEmb_clicked() { m_threeCombineEmb *= -1; if(m_threeCombineEmb == 1)//非三头组合绣模式 { ui->buttonThreeCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中 ui->buttonThreeCombineEmb->setChecked(false); ui->buttonHeadEmb->setEnabled(true);//false ,按钮就不可点击,设置成true,按钮就可以点击。 emit siSetHeadEmbBtnEnable(true); } else//三头组合绣模式 { m_combineEmb = 1; ui->buttonCombineEmb->setCheckable(true);//setCheckable(true)为属性,表示可以选中 ui->buttonCombineEmb->setChecked(false); ui->buttonThreeCombineEmb->setCheckable(true); ui->buttonThreeCombineEmb->setChecked(true);//setChecked(true)为属性的值,表示已经选中 ui->buttonHeadEmb->setEnabled(false); emit siSetHeadEmbBtnEnable(false); } initNeedleBar(); refreshColorShow(); } void ColorOrderSetWidget::mousePressEvent(QMouseEvent *e) { if (e->button() == Qt::LeftButton) { m_mousePressX = e->x(); m_mousePressY = e->y(); m_mouseReleaseX = 0; m_mouseReleaseY = 0; } } void ColorOrderSetWidget::mouseReleaseEvent(QMouseEvent *e) { if (e->button() == Qt::LeftButton) { m_mouseReleaseX = e->x(); m_mouseReleaseY = e->y(); } int width = this->width(); int height = this->height(); if ((m_mousePressX >= 0 && m_mousePressX <= 100) && ((m_mousePressY >= (height - 100)) && m_mousePressY <= height) && ((m_mouseReleaseX >= (width - 100)) && m_mouseReleaseX <= width) && ((m_mouseReleaseY >= (height - 100)) && m_mouseReleaseY <= height)) { MainWidgetFunction mainFunction; QString usbPath;//优盘路径 usbPath = mainFunction.detectUsb();//优盘检测 if(usbPath.length() <= 0) { //优盘不存在 return; } else { QPixmap pixmap=QPixmap::grabWindow(this->winId(),0,0,this->width(),this->height());//截屏存放在pixmap QString name_pc = usbPath + "EMB" + // QDateTime::currentDateTime().toString("yyyyMMdd") +//获取时期时间 +"_"+ QDateTime::currentDateTime().toString("hhmmss") + ".png"; pixmap.save(name_pc,"png"); // 路径 } } m_mousePressX = 0; m_mousePressY = 0; m_mouseReleaseX = 0; m_mouseReleaseY = 0; } //色序设定是否解锁,锁住时针杆不可切换,未锁住时针杆可切换 void ColorOrderSetWidget::on_buttonColorSetLock_clicked() { m_colorSetBtnLockFlag *= -1; refreshLockBtn(); } //切换成不同的针杆显示 void ColorOrderSetWidget::on_buttonNeedle_clicked() { int towel = g_pSettings->readFromInHMIiFile("HMI/towel").toInt();//是否有毛巾功能 int coil = g_pSettings->readFromInHMIiFile("HMI/coil").toInt();//是否有缠绕功能 int laser = g_pSettings->readFromInHMIiFile("HMI/laser").toInt();//是否有激光功能 ui->buttonExplanation->setEnabled(false); switch (m_colorBeginStepCtrl) { case DATA_CHAIN: { if(coil == 1) { m_colorBeginStepCtrl = DATA_SAWTOOTH; ui->buttonExplanation->setEnabled(true); } else { //纯毛巾时不会带激光 if(laser == 1) { m_colorBeginStepCtrl = DATA_LASER;//缠绕变激光 } else if(g_emProductType == PRODUCT_CHEN)//纯毛巾 { m_colorBeginStepCtrl = DATA_CHENILLE; } else { m_colorBeginStepCtrl = DATA_EMB; } } break; } case DATA_LASER: { m_colorBeginStepCtrl = DATA_EMB; break; } case DATA_EMB://第一次进来是平绣 { if((towel == 1 && coil != 1) || (coil == 1 && towel == 1)|| (g_emProductType == PRODUCT_CHEN) ) { m_colorBeginStepCtrl = DATA_CHENILLE; } if(coil == 1 && towel != 1) { m_colorBeginStepCtrl = DATA_SAWTOOTH; ui->buttonExplanation->setEnabled(true); } if(coil != 1 && towel != 1) { if(laser == 1) { m_colorBeginStepCtrl = DATA_LASER; } } break; } case DATA_CHENILLE: { m_colorBeginStepCtrl = DATA_CHAIN; break; } case DATA_SAWTOOTH: { m_colorBeginStepCtrl = DATA_RIBBON; ui->buttonExplanation->setEnabled(true); break; } case DATA_RIBBON: { m_colorBeginStepCtrl = DATA_COIL; ui->buttonExplanation->setEnabled(true); break; } case DATA_COIL: { if(laser == 1) { m_colorBeginStepCtrl = DATA_LASER;//缠绕变激光 } else { m_colorBeginStepCtrl = DATA_EMB; } break; } default: m_colorBeginStepCtrl = DATA_EMB; break; } switchNeedleBar(); } //缠绕绣的说明按钮 void ColorOrderSetWidget::on_buttonExplanation_clicked() { if(m_colorBeginStepCtrl == DATA_COIL) { PromptDialog dlg(this); dlg.initDialog(PromptDialog::BTN_OK); dlg.setTitleStr(tr("Coil function description"));//缠绕功能说明 dlg.setContentStr(tr("W1: Left-handed 1; W2: Left-handed 2; W3: Left-handed 3; W4:Left-handed 4;W5:Right-handed 1;W6:Right-handed 2;W7:Right-handed 3;W8:Right-handed 4;W9:Winding plain embroidery"));//W1:左旋1;W2:左旋2;W3:左旋3;W4:左旋4; dlg.exec(); } else if (m_colorBeginStepCtrl == DATA_RIBBON) { PromptDialog dlg(this); dlg.initDialog(PromptDialog::BTN_OK); dlg.setTitleStr(tr("Ribbon function description"));//盘带功能说明 dlg.setContentStr(tr("R1: Normal 1; R2: Pleated embroidery"));//盘带1是正常,2是褶绣 dlg.exec(); } else if (m_colorBeginStepCtrl == DATA_SAWTOOTH) { PromptDialog dlg(this); dlg.initDialog(PromptDialog::BTN_OK); dlg.setTitleStr(tr("Sawtooh function description")); //锯齿功能说明 dlg.setContentStr(tr("Z1: Each needle swings once; Z2: The same as Z1, with additional embroidery frame compensation;Z3: The needle will swing when it is dropped in place, and the needle will not swing when it is inserted; Z4: One swing per needle and one swing per three needles alternately; Z5: The needle will swing when it is dropped in place, and the needle will not swing when it is inserted; Z6: Swing once every two stitches"));//Z1:每针摆动一次;Z2:同Z1,附加绣框补偿; //Z3:原地落两针摆动,进针不摆;Z4:每针摆动一次和每三针摆动一次交替进行;Z5:原地落一针摆动,进针不摆;Z6:每两针摆动一次 dlg.exec(); } } //激光色序快捷按钮 void ColorOrderSetWidget::on_buttonColorLaser_clicked() { //快捷设置色序按钮是激光色序5 int colorInPage = EMB_NEEDLE_NUM + PUNCH_NEEDLE_NUM +SEW_NEEDLE_NUM+RIBBON_NEEDLE_NUM+TOWEL_NEEDLE_NUM+CHAIN_NEEDLE_NUM+COIL_NEEDLE_NUM+REV2_NEEDLE_NUM+SAWTOOTH_NEEDLE_NUM+REV3_NEEDLE_NUM+LASER_NEEDLE_NUM-5; if(m_curSelectColor >= 0) { int colorInTab = m_colorTable.at(m_curSelectColor); // 文件中的色序 if (colorInTab != colorInPage) { m_colorTable[m_curSelectColor] = colorInPage; emit siChangeColorTable(m_curSelectColor,colorInPage);//针杆写入色序表 } //当前色序设定完成后自动跳到下一色序 if(m_curSelectColor < m_colorTable.size() - 1) { m_curSelectColor += 1;//花版中的第几个色序 } refreshColorShow(colorInPage); refreshPatternCurColorShow(); initNeedleBar();//下一个色序针杆变,在这个函数里 } } //是否刷新色序颜色显示 void ColorOrderSetWidget::on_buttonRefreshColorOrder_clicked() { m_refreshColorOrder *=-1; if(m_refreshColorOrder == -1) { ui->buttonRefreshColorOrder->setCheckable(true); ui->buttonRefreshColorOrder->setChecked(true); // 设置按钮的初始状态为未选中 } else { ui->buttonRefreshColorOrder->setCheckable(false); ui->buttonRefreshColorOrder->setChecked(false); // 设置按钮的初始状态为未选中 } refreshPatternCurColorShow(); }