1066 lines
42 KiB
C++
1066 lines
42 KiB
C++
#include "patternneedlelayoutwidget.h"
|
||
#include "ui_patternneedlelayoutwidget.h"
|
||
|
||
PatternNeedleLayoutWidget::PatternNeedleLayoutWidget(QWidget *parent) :
|
||
QWidget(parent),
|
||
ui(new Ui::PatternNeedleLayoutWidget)
|
||
{
|
||
ui->setupUi(this);
|
||
setWindowFlags (Qt::Window | Qt::FramelessWindowHint);
|
||
setWindowModality(Qt::ApplicationModal);
|
||
|
||
m_NeedleBtnList.clear();
|
||
m_NeedleBtnList.append(ui->pushButtonFront1);
|
||
m_NeedleBtnList.append(ui->pushButtonFront2);
|
||
m_NeedleBtnList.append(ui->pushButtonFront3);
|
||
m_NeedleBtnList.append(ui->pushButtonFront4);
|
||
m_NeedleBtnList.append(ui->pushButtonFront5);
|
||
m_NeedleBtnList.append(ui->pushButtonFront6);
|
||
m_NeedleBtnList.append(ui->pushButtonFront7);
|
||
m_NeedleBtnList.append(ui->pushButtonFront8);
|
||
m_NeedleBtnList.append(ui->pushButtonFront9);
|
||
m_NeedleBtnList.append(ui->pushButtonFront10);
|
||
m_NeedleBtnList.append(ui->pushButtonFront11);
|
||
m_NeedleBtnList.append(ui->pushButtonFront12);
|
||
m_NeedleBtnList.append(ui->pushButtonFront13);
|
||
m_NeedleBtnList.append(ui->pushButtonFront14);
|
||
m_NeedleBtnList.append(ui->pushButtonFront15);
|
||
m_NeedleBtnList.append(ui->pushButtonFront16);
|
||
m_NeedleBtnList.append(ui->pushButtonFront17);
|
||
m_NeedleBtnList.append(ui->pushButtonFront18);
|
||
m_NeedleBtnList.append(ui->pushButtonFront19);
|
||
m_NeedleBtnList.append(ui->pushButtonFront20);
|
||
m_NeedleBtnList.append(ui->pushButtonFront21);
|
||
m_NeedleBtnList.append(ui->pushButtonFront22);
|
||
m_NeedleBtnList.append(ui->pushButtonFront23);
|
||
m_NeedleBtnList.append(ui->pushButtonFront24);
|
||
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle1);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle2);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle3);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle4);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle5);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle6);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle7);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle8);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle9);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle10);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle11);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle12);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle13);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle14);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle15);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle16);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle17);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle18);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle19);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle20);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle21);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle22);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle23);
|
||
m_NeedleBtnList.append(ui->pushButtonMiddle24);
|
||
|
||
m_NeedleBtnList.append(ui->pushButtonBehind1);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind2);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind3);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind4);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind5);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind6);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind7);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind8);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind9);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind10);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind11);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind12);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind13);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind14);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind15);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind16);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind17);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind18);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind19);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind20);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind21);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind22);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind23);
|
||
m_NeedleBtnList.append(ui->pushButtonBehind24);
|
||
|
||
for(int i = 0; i < m_NeedleBtnList.size(); i++)
|
||
{
|
||
connect(m_NeedleBtnList[i],
|
||
SIGNAL(clicked()),
|
||
this,
|
||
SLOT(slotNeedleBtnClicked()));
|
||
}
|
||
|
||
m_pCurEmbData = new EmbData();
|
||
|
||
m_leftRightNeedleSpace = 635;//左右针间距
|
||
m_needlesSpace = 2540;//针与针之间间距
|
||
m_needleLayoutSpace12 = 7620;//针排间距
|
||
m_needleLayoutSpace23 = 7620;//针排间距
|
||
m_btnSelect = -1;
|
||
|
||
memset(m_arrayNeedle1,NEEDLENOTSET,sizeof(m_arrayNeedle1));
|
||
memset(m_arrayNeedle2,NEEDLENOTSET,sizeof(m_arrayNeedle2));
|
||
memset(m_arrayNeedle3,NEEDLENOTSET,sizeof(m_arrayNeedle3));
|
||
|
||
this->setStyleSheet("background-color: rgb(223, 223, 223);");
|
||
initResolution();
|
||
initControlStyle();
|
||
}
|
||
|
||
PatternNeedleLayoutWidget::~PatternNeedleLayoutWidget()
|
||
{
|
||
if(m_pCurEmbData != NULL)
|
||
{
|
||
delete m_pCurEmbData;
|
||
}
|
||
delete ui;
|
||
}
|
||
|
||
//返回一个按钮-高和宽最小的一个数值
|
||
int PatternNeedleLayoutWidget::returnMinimumSize(QPushButton *button)
|
||
{
|
||
// 确保指针不是 nullptr,以避免在按钮未正确初始化时导致的问题
|
||
if (button == NULL) {
|
||
return 0; // 或者抛出异常或处理这种情况
|
||
}
|
||
// 使用三元运算符来返回宽度和高度中的较大值
|
||
return button->width() < button->height() ? button->width() : button->height();
|
||
}
|
||
|
||
// 设置银色按钮,黑字
|
||
void PatternNeedleLayoutWidget::setButtonStyle(QPushButton *button)
|
||
{
|
||
// 银色按钮,黑字
|
||
QString style = "QPushButton{background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(255, 255, 255), stop:1 rgb(215, 243, 254));color: rgb(0, 0, 0);}";
|
||
style += "QPushButton:pressed{background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(217, 222, 224), stop:1 rgb(191, 213, 223));}";
|
||
style += "QPushButton:disabled{background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(230, 230, 230), stop:1 rgb(182, 182, 182));}";
|
||
button->setStyleSheet(style);
|
||
}
|
||
|
||
//设置按钮颜色橙色--清空文本设置icon
|
||
void PatternNeedleLayoutWidget::setOrangeButtonStyleSettingsIcon(QPushButton *button)
|
||
{
|
||
QString iconName = ":/images/PatternNeedleLayoutWidget/"+button->objectName()+".png";
|
||
button->setIcon(QIcon(iconName));
|
||
button->setIconSize(QSize(returnMinimumSize(button), returnMinimumSize(button)));
|
||
button->setText("");
|
||
QString style = "QPushButton{border-radius:" + borderRadius() + "px;}";
|
||
// 橙色按钮,白字
|
||
style += "QPushButton{background-color: qlineargradient(spread:pad, x1:0.5 y1:0, x2:0.5, y2:1, stop:0 rgb(247, 180, 61), stop:1 rgb(222, 162, 55));color:rgb(255,255,255);}";
|
||
style += "QPushButton:pressed{background-color: qlineargradient(spread:pad, x1:0.5 y1:0, x2:0.5, y2:1, stop:0 rgb(222, 196, 128), stop:1 rgb(213,125,54));color:rgb(255,255,255);}";
|
||
style += "QPushButton:disabled{background-color: qlineargradient(spread:pad, x1:0.5 y1:0, x2:0.5, y2:1, stop:0 rgb(227, 227, 227), stop:1 rgb(177,177,177));color:rgb(255,255,255);}";
|
||
button->setStyleSheet(style);
|
||
}
|
||
|
||
//设置按钮颜色--天蓝色渐变
|
||
void PatternNeedleLayoutWidget::setButtonColorForSkyBlue(QPushButton *button)
|
||
{
|
||
QString style = "QPushButton{border-radius:" + borderRadius() + "px;}";
|
||
style += "QPushButton{background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #7DE0E1, stop: 1 #39C2DC);border: none;}";
|
||
style += "QPushButton:pressed{background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #6DC3C4, stop: 1 #32AAC0);border: none;}";
|
||
style += "QPushButton:disabled{background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #E8E8E8, stop: 1 #B3B3B3);border: none;color:rgb(0,0,0);}";
|
||
style += "QPushButton:checked{background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,stop: 0 #E8E8E8, stop: 1 #B3B3B3);border: none;color:rgb(0,0,0);}";
|
||
button->setStyleSheet(style);
|
||
}
|
||
|
||
//设置按钮颜色--银色边框白底黑字
|
||
void PatternNeedleLayoutWidget::setButtonStyleForSilverBorder(QPushButton *button)
|
||
{
|
||
QString style = "QPushButton {"
|
||
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(255, 255, 255), stop:1 rgb(215, 243, 254));"
|
||
"color: rgb(0, 0, 0);"
|
||
"border: 2px solid rgb(200, 200, 200);"
|
||
"border-radius: 5px;"
|
||
"} "
|
||
"QPushButton:pressed {"
|
||
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(217, 222, 224), stop:1 rgb(191, 213, 223));"
|
||
"border: 2px solid rgb(235, 235, 235);"
|
||
"} "
|
||
"QPushButton:disabled {"
|
||
"background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgb(230, 230, 230), stop:1 rgb(182, 182, 182));"
|
||
"color: rgb(150, 150, 150);"
|
||
"border: 2px solid rgb(180, 180, 180);"
|
||
"}";
|
||
|
||
button->setStyleSheet(style);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::selectNextBtn()
|
||
{
|
||
int index = 0;
|
||
for(int i = 0; i < m_NeedleBtnList.size(); i++)
|
||
{
|
||
QPushButton* p_btn = m_NeedleBtnList.at(i);
|
||
if(p_btn->isChecked())
|
||
{
|
||
index = i;
|
||
break;
|
||
}
|
||
}
|
||
index++;
|
||
if(index < m_NeedleBtnList.size())
|
||
{
|
||
QPushButton* p_btn = m_NeedleBtnList.at(index);
|
||
p_btn->click();
|
||
}
|
||
}
|
||
|
||
//初始化窗体控件为任意分辨率
|
||
void PatternNeedleLayoutWidget::initResolution()
|
||
{
|
||
double factoryX = getFactoryX();
|
||
double factoryY = getFactoryY();
|
||
this->resize(GLB_SCR_WIGHT*factoryX,GLB_SCR_HEIGHT*factoryY);
|
||
|
||
ui->frameBGImg->setGeometry(0*factoryX,0*factoryY,GLB_SCR_WIGHT*factoryX,GLB_SCR_HEIGHT*factoryY);
|
||
ui->frameBack->setGeometry(0*factoryX,0*factoryY,GLB_SCR_WIGHT*factoryX,GLB_SCR_HEIGHT*factoryY);
|
||
ui->buttonTypeLogo->setGeometry(GLB_EDGE_WIGHT*factoryX,GLB_EDGE_HEIGHT*factoryY,GLB_LICON_SIZE*factoryX,GLB_LICON_SIZE*factoryY);
|
||
ui->labelMainTitle->setGeometry((GLB_EDGE_WIGHT+GLB_LICON_SIZE+GLB_EDGE_WIGHT)*factoryX,GLB_EDGE_HEIGHT*factoryY,
|
||
(GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_LICON_SIZE+GLB_EDGE_WIGHT*2))*factoryX,GLB_TEXT_L_HEIGHT*factoryY);
|
||
ui->labelSubTitle->setGeometry((GLB_EDGE_WIGHT+GLB_LICON_SIZE+GLB_EDGE_WIGHT+GLB_TAB_WIGHT)*factoryX,(GLB_EDGE_HEIGHT+GLB_LICON_SIZE-GLB_TEXT_HEIGHT)*factoryY,
|
||
(GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_LICON_SIZE+GLB_EDGE_WIGHT+GLB_TAB_WIGHT*2))*factoryX,GLB_TEXT_HEIGHT*factoryY);
|
||
|
||
ui->framePageBtn->setGeometry(0*factoryX,(GLB_SCR_HEIGHT-GLB_LBUT_HEIGHT-GLB_EDGE_WIGHT)*factoryY,GLB_SCR_WIGHT*factoryX,GLB_LBUT_HEIGHT*factoryY);
|
||
ui->buttonClear->setGeometry((GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_BAS_WIGHT*3+GLB_LBUT_WIGHT*4))*factoryX,0*factoryY,GLB_LBUT_WIGHT*factoryX,GLB_LBUT_HEIGHT*factoryY);
|
||
ui->buttonCircle->setGeometry((GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_BAS_WIGHT*2+GLB_LBUT_WIGHT*3))*factoryX,0*factoryY,GLB_LBUT_WIGHT*factoryX,GLB_LBUT_HEIGHT*factoryY);
|
||
ui->buttonOk->setGeometry((GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_BAS_WIGHT*1+GLB_LBUT_WIGHT*2))*factoryX,0*factoryY,GLB_LBUT_WIGHT*factoryX,GLB_LBUT_HEIGHT*factoryY);
|
||
ui->buttonCancel->setGeometry((GLB_SCR_WIGHT-(GLB_EDGE_WIGHT+GLB_BAS_WIGHT*0+GLB_LBUT_WIGHT*1))*factoryX,0*factoryY,GLB_LBUT_WIGHT*factoryX,GLB_LBUT_HEIGHT*factoryY);
|
||
|
||
ui->labelImage->setGeometry(80*factoryX,320*factoryY,451*factoryX,251*factoryY);
|
||
ui->labelExplain->setGeometry(527*factoryX,470*factoryY,440*factoryX,50*factoryY);
|
||
|
||
ui->pushButtonDouble->setGeometry(881*factoryX,435*factoryY,80*factoryX,30*factoryY);
|
||
ui->pushButtonLeft->setGeometry(645*factoryX,435*factoryY,80*factoryX,30*factoryY);
|
||
ui->pushButtonNone->setGeometry(527*factoryX,435*factoryY,80*factoryX,30*factoryY);
|
||
ui->pushButtonRight->setGeometry(763*factoryX,435*factoryY,80*factoryX,30*factoryY);
|
||
|
||
ui->pushButtonLRSpace->setGeometry(876*factoryX,310*factoryY,50*factoryX,20*factoryY);
|
||
ui->pushButtonNSpace->setGeometry(876*factoryX,340*factoryY,50*factoryX,20*factoryY);
|
||
ui->pushButton12Space->setGeometry(876*factoryX,370*factoryY,50*factoryX,20*factoryY);
|
||
ui->pushButton23Space->setGeometry(876*factoryX,400*factoryY,50*factoryX,20*factoryY);
|
||
|
||
ui->labelLRSpace->setGeometry(527*factoryX,310*factoryY,321*factoryX,20*factoryY);
|
||
ui->labelNSpace->setGeometry(527*factoryX,340*factoryY,321*factoryX,20*factoryY);
|
||
ui->label12Space->setGeometry(527*factoryX,370*factoryY,321*factoryX,20*factoryY);
|
||
ui->label23Space->setGeometry(527*factoryX,400*factoryY,321*factoryX,20*factoryY);
|
||
|
||
ui->labelUnit1->setGeometry(932*factoryX,310*factoryY,41*factoryX,20*factoryY);
|
||
ui->labelUnit2->setGeometry(932*factoryX,340*factoryY,41*factoryX,20*factoryY);
|
||
ui->labelUnit3->setGeometry(932*factoryX,370*factoryY,41*factoryX,20*factoryY);
|
||
ui->labelUnit4->setGeometry(932*factoryX,400*factoryY,41*factoryX,20*factoryY);
|
||
|
||
ui->frameBehind->setGeometry(10*factoryX,230*factoryY,991*factoryX,60*factoryY);
|
||
ui->frameMiddle->setGeometry(10*factoryX,160*factoryY,991*factoryX,60*factoryY);
|
||
ui->frameFront->setGeometry(10*factoryX,90*factoryY,991*factoryX,60*factoryY);
|
||
|
||
for(int i = 0; i <m_NeedleBtnList.size() ; i++)
|
||
{
|
||
m_NeedleBtnList[i]->setGeometry((20+(40*(i%24)))*factoryX,14*factoryY,32*factoryX,32*factoryY);
|
||
}
|
||
}
|
||
|
||
//初始化窗体控件的样式
|
||
void PatternNeedleLayoutWidget::initControlStyle()
|
||
{
|
||
ui->buttonTypeLogo->setUnPreBtnLogo(":/images/PatternNeedleLayoutWidget/mybutton_logo.png");
|
||
ui->labelMainTitle->setText(tr("Alignment preview"));
|
||
ui->labelSubTitle->setText(tr("Pattern setting") + ">" + tr(" Alignment preview"));
|
||
ui->frameBGImg->setStyleSheet("QFrame {"
|
||
"border-image: url(:/images/PatternEditWidget/WidgetFrameBack_1006_logo.png) 0 0 0 0 stretch stretch;"
|
||
"}");
|
||
ui->frameBack->setStyleSheet("background: transparent;");
|
||
ui->labelImage->setStyleSheet("background: transparent;");
|
||
ui->frameBehind->setStyleSheet("background: transparent;");
|
||
ui->frameFront->setStyleSheet("background: transparent;");
|
||
ui->frameMiddle->setStyleSheet("background: transparent;");
|
||
ui->framePageBtn->setStyleSheet("background: transparent;");
|
||
|
||
//label样式
|
||
ui->labelMainTitle->setFont(fontSize_L());
|
||
ui->labelMainTitle->setStyleSheet(titleTextColour());
|
||
ui->labelSubTitle->setFont(fontSize_M());
|
||
ui->labelSubTitle->setStyleSheet(noteTextColour());
|
||
|
||
for(int i=0;i<m_NeedleBtnList.size();i++)
|
||
{
|
||
setButtonStyle(m_NeedleBtnList[i]);
|
||
m_NeedleBtnList[i]->setFont(fontSize_M());
|
||
}
|
||
|
||
setOrangeButtonStyleSettingsIcon(ui->buttonOk);
|
||
setOrangeButtonStyleSettingsIcon(ui->buttonClear);
|
||
setOrangeButtonStyleSettingsIcon(ui->buttonCircle);
|
||
setOrangeButtonStyleSettingsIcon(ui->buttonCancel);
|
||
|
||
ui->labelLRSpace->setText(tr("Left and right needle spacing :"));//左右针间距
|
||
ui->labelNSpace->setText(tr("Needle to needle spacing :"));//针与针间距
|
||
ui->label12Space->setText(tr("First, second row needle spacing :"));//第一、二排针间距
|
||
ui->label23Space->setText(tr("Second, thrid row needle spacing :"));//第二、三排针间距
|
||
ui->labelLRSpace->setFont(fontSize_M());
|
||
ui->labelNSpace->setFont(fontSize_M());
|
||
ui->label12Space->setFont(fontSize_M());
|
||
ui->label23Space->setFont(fontSize_M());
|
||
|
||
ui->label12Space->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->label23Space->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelLRSpace->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelNSpace->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelUnit1->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelUnit2->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelUnit3->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelUnit4->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
ui->labelExplain->setStyleSheet("background: transparent;color:rgb(255, 255, 255)");
|
||
|
||
ui->label12Space->setFont(fontSize_M());
|
||
ui->label23Space->setFont(fontSize_M());
|
||
ui->labelLRSpace->setFont(fontSize_M());
|
||
ui->labelNSpace->setFont(fontSize_M());
|
||
ui->labelUnit1->setFont(fontSize_M());
|
||
ui->labelUnit2->setFont(fontSize_M());
|
||
ui->labelUnit3->setFont(fontSize_M());
|
||
ui->labelUnit4->setFont(fontSize_M());
|
||
ui->labelExplain->setFont(fontSize_M());
|
||
|
||
ui->pushButtonNone->setFont(fontSize_M());
|
||
ui->pushButtonRight->setFont(fontSize_M());
|
||
ui->pushButtonLeft->setFont(fontSize_M());
|
||
ui->pushButtonDouble->setFont(fontSize_M());
|
||
|
||
ui->pushButton12Space->setFont(fontSize_M());
|
||
ui->pushButton23Space->setFont(fontSize_M());
|
||
ui->pushButtonLRSpace->setFont(fontSize_M());
|
||
ui->pushButtonNSpace->setFont(fontSize_M());
|
||
|
||
setButtonStyleForSilverBorder(ui->pushButton12Space);
|
||
setButtonStyleForSilverBorder(ui->pushButton23Space);
|
||
setButtonStyleForSilverBorder(ui->pushButtonLRSpace);
|
||
setButtonStyleForSilverBorder(ui->pushButtonNSpace);
|
||
|
||
setButtonColorForSkyBlue(ui->pushButtonNone);
|
||
setButtonColorForSkyBlue(ui->pushButtonRight);
|
||
setButtonColorForSkyBlue(ui->pushButtonLeft);
|
||
setButtonColorForSkyBlue(ui->pushButtonDouble);
|
||
|
||
ui->pushButtonNone->setDisabled(true);
|
||
ui->pushButtonLeft->setDisabled(true);
|
||
ui->pushButtonRight->setDisabled(true);
|
||
ui->pushButtonDouble->setDisabled(true);
|
||
ui->pushButtonDouble->setVisible(false);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButtonNone_clicked()
|
||
{
|
||
if(m_btnSelect < 0)
|
||
{
|
||
return;
|
||
}
|
||
if(m_btnSelect < LAYOUTNEEDLENUM && m_btnSelect >= 0)
|
||
{
|
||
m_arrayNeedle1[m_btnSelect] = NEEDLENONE;
|
||
refreshView(1); //更新前排数据
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*2 && m_btnSelect >= LAYOUTNEEDLENUM)
|
||
{
|
||
m_arrayNeedle2[m_btnSelect-LAYOUTNEEDLENUM] = NEEDLENONE;
|
||
refreshView(2); //更新中排数据
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*3 && m_btnSelect >= LAYOUTNEEDLENUM*2)
|
||
{
|
||
m_arrayNeedle3[m_btnSelect-LAYOUTNEEDLENUM*2] = NEEDLENONE;
|
||
refreshView(3); //更新后排数据
|
||
}
|
||
m_NeedleBtnList[m_btnSelect]->setText("O");
|
||
|
||
selectNextBtn();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButtonLeft_clicked()
|
||
{
|
||
if(m_btnSelect < 0)
|
||
{
|
||
return;
|
||
}
|
||
if(m_btnSelect < LAYOUTNEEDLENUM && m_btnSelect >= 0)
|
||
{
|
||
m_arrayNeedle1[m_btnSelect] = NEEDLELEFT;
|
||
refreshView(1);
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*2 && m_btnSelect >= LAYOUTNEEDLENUM)
|
||
{
|
||
m_arrayNeedle2[m_btnSelect-LAYOUTNEEDLENUM] = NEEDLELEFT;
|
||
refreshView(2);
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*3 && m_btnSelect >= LAYOUTNEEDLENUM*2)
|
||
{
|
||
m_arrayNeedle3[m_btnSelect-LAYOUTNEEDLENUM*2] = NEEDLELEFT;
|
||
refreshView(3);
|
||
}
|
||
m_NeedleBtnList[m_btnSelect]->setText("L");
|
||
|
||
selectNextBtn();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButtonRight_clicked()
|
||
{
|
||
if(m_btnSelect < 0)
|
||
{
|
||
return;
|
||
}
|
||
if(m_btnSelect < LAYOUTNEEDLENUM && m_btnSelect >= 0)
|
||
{
|
||
m_arrayNeedle1[m_btnSelect] = NEEDLERIGHT;
|
||
refreshView(1);
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*2 && m_btnSelect >= LAYOUTNEEDLENUM)
|
||
{
|
||
m_arrayNeedle2[m_btnSelect-LAYOUTNEEDLENUM] = NEEDLERIGHT;
|
||
refreshView(2);
|
||
}
|
||
else if(m_btnSelect < LAYOUTNEEDLENUM*3 && m_btnSelect >= LAYOUTNEEDLENUM*2)
|
||
{
|
||
m_arrayNeedle3[m_btnSelect-LAYOUTNEEDLENUM*2] = NEEDLERIGHT;
|
||
refreshView(3);
|
||
}
|
||
m_NeedleBtnList[m_btnSelect]->setText("R");
|
||
|
||
selectNextBtn();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_buttonCircle_clicked()
|
||
{
|
||
unsigned char arrayNeedle1[LAYOUTNEEDLENUM]; // 第1排排针
|
||
memcpy((char*)arrayNeedle1,(char*)m_arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
unsigned char arrayNeedle2[LAYOUTNEEDLENUM]; // 第2排排针
|
||
memcpy((char*)arrayNeedle2,(char*)m_arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
unsigned char arrayNeedle3[LAYOUTNEEDLENUM]; // 第3排排针
|
||
memcpy((char*)arrayNeedle3,(char*)m_arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
//前排循环
|
||
s16 needle1Num = 0;
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle1); i++)
|
||
{
|
||
if(m_arrayNeedle1[i] == NEEDLENOTSET)
|
||
{
|
||
break;
|
||
}
|
||
needle1Num++;
|
||
}
|
||
if(needle1Num > 0)
|
||
{
|
||
u16 idx = 0;
|
||
unsigned char cpArrayNeedle1[needle1Num];
|
||
memcpy((char*)cpArrayNeedle1,(char*)m_arrayNeedle1,sizeof(cpArrayNeedle1));
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle1); i++)
|
||
{
|
||
if(i >= needle1Num)
|
||
{
|
||
idx = i % needle1Num;
|
||
}
|
||
else
|
||
{
|
||
idx = i;
|
||
}
|
||
m_arrayNeedle1[i] = cpArrayNeedle1[idx];
|
||
}
|
||
}
|
||
|
||
//中排循环
|
||
s16 needle2Num = 0;
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle2); i++)
|
||
{
|
||
if(m_arrayNeedle2[i] == NEEDLENOTSET)
|
||
{
|
||
break;
|
||
}
|
||
needle2Num++;
|
||
}
|
||
if(needle2Num > 0)
|
||
{
|
||
u16 idx = 0;
|
||
unsigned char cpArrayNeedle2[needle2Num];
|
||
memcpy((char*)cpArrayNeedle2,(char*)m_arrayNeedle2,sizeof(cpArrayNeedle2));
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle2); i++)
|
||
{
|
||
if(i >= needle2Num)
|
||
{
|
||
idx = i % needle2Num;
|
||
}
|
||
else
|
||
{
|
||
idx = i;
|
||
}
|
||
m_arrayNeedle2[i] = cpArrayNeedle2[idx];
|
||
}
|
||
}
|
||
|
||
//后排循环
|
||
s16 needle3Num = 0;
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle3); i++)
|
||
{
|
||
if(m_arrayNeedle3[i] == NEEDLENOTSET)
|
||
{
|
||
break;
|
||
}
|
||
needle3Num++;
|
||
}
|
||
if(needle3Num > 0)
|
||
{
|
||
u16 idx = 0;
|
||
unsigned char cpArrayNeedle3[needle3Num];
|
||
memcpy((char*)cpArrayNeedle3,(char*)m_arrayNeedle3,sizeof(cpArrayNeedle3));
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle3); i++)
|
||
{
|
||
if(i >= needle3Num)
|
||
{
|
||
idx = i % needle3Num;
|
||
}
|
||
else
|
||
{
|
||
idx = i;
|
||
}
|
||
m_arrayNeedle3[i] = cpArrayNeedle3[idx];
|
||
}
|
||
}
|
||
|
||
refreshNeedleText();
|
||
|
||
//重置绘制数据
|
||
bool bl1 = memcmp((char*)m_arrayNeedle1,(char*)arrayNeedle1,sizeof(arrayNeedle1));
|
||
bool bl2 = memcmp((char*)m_arrayNeedle2,(char*)arrayNeedle2,sizeof(arrayNeedle2));
|
||
bool bl3 = memcmp((char*)m_arrayNeedle3,(char*)arrayNeedle3,sizeof(arrayNeedle3));
|
||
|
||
m_pCurEmbData->setViewInfo(ui->labelImage->width(),ui->labelImage->height());
|
||
|
||
if(bl1 == true)//设置改变
|
||
{
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_newLRSpaceValue,m_newNSpaceValue,m_new12SpaceValue,m_new23SpaceValue,1);
|
||
}
|
||
if(bl2 == true)//设置改变
|
||
{
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_newLRSpaceValue,m_newNSpaceValue,m_new12SpaceValue,m_new23SpaceValue,2);
|
||
}
|
||
if(bl3 == true)//设置改变
|
||
{
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_newLRSpaceValue,m_newNSpaceValue,m_new12SpaceValue,m_new23SpaceValue,3);
|
||
}
|
||
m_pCurEmbData->createDispFromEmbDs16DatForFlyShuttle(1);
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_NORMAL,1); // 重新画灰图
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelImage->setPixmap(patternPix);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_buttonOk_clicked()
|
||
{
|
||
if(m_filePath.length() <= 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
QFileInfo file(m_filePath);
|
||
QString ext = file.suffix().toUpper();
|
||
|
||
//将排针信息保存到文件中
|
||
if(ext == "QUI")
|
||
{
|
||
DataFileQui qui;
|
||
qui.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
QuiFileHead *head = qui.getQuiHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = m_newLRSpaceValue;
|
||
head->leftRightLen = m_newLRSpaceValue;//左右针间距
|
||
m_needlesSpace = m_newNSpaceValue;
|
||
head->HStep = m_needlesSpace;//针与针之间间距
|
||
m_needleLayoutSpace12 = m_new12SpaceValue;
|
||
head->VStep12 = m_needleLayoutSpace12;//针排间距
|
||
m_needleLayoutSpace23 = m_new23SpaceValue;
|
||
head->VStep23 = m_needleLayoutSpace23;//针排间距
|
||
|
||
memcpy((char*)head->arrayNeedle1,(char*)m_arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)head->arrayNeedle2,(char*)m_arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)head->arrayNeedle3,(char*)m_arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
qui.writePatternParaToFile(head);
|
||
}
|
||
else if(ext == "QUIX")
|
||
{
|
||
DataFileQuix quix;
|
||
quix.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
QuixFileHead *head = quix.getQuixHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = m_newLRSpaceValue;
|
||
head->leftRightLen = m_leftRightNeedleSpace;//左右针间距
|
||
m_needlesSpace = m_newNSpaceValue;
|
||
head->HStep = m_needlesSpace;//针与针之间间距
|
||
m_needleLayoutSpace12 = m_new12SpaceValue;
|
||
head->VStep12 = m_needleLayoutSpace12;//针排间距
|
||
m_needleLayoutSpace23 = m_new23SpaceValue;
|
||
head->VStep23 = m_needleLayoutSpace23;//针排间距
|
||
|
||
memcpy((char*)head->arrayNeedle1,(char*)m_arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)head->arrayNeedle2,(char*)m_arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)head->arrayNeedle3,(char*)m_arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
quix.writePatternParaToFile(head);
|
||
}
|
||
else if(ext == "DSR")
|
||
{
|
||
DataFileDsr dsr;
|
||
dsr.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
DsrHead *head = dsr.getDsrHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = m_newLRSpaceValue;
|
||
head->leftRightLen = m_leftRightNeedleSpace;//左右针间距
|
||
m_needlesSpace = m_newNSpaceValue;
|
||
head->HStep = m_needlesSpace;//针与针之间间距
|
||
m_needleLayoutSpace12 = m_new12SpaceValue;
|
||
head->VStep12 = m_needleLayoutSpace12;//针排间距
|
||
m_needleLayoutSpace23 = m_new23SpaceValue;
|
||
head->VStep23 = m_needleLayoutSpace23;//针排间距
|
||
|
||
memcpy((char*)head->arrayNeedle1,(char*)m_arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)head->arrayNeedle2,(char*)m_arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)head->arrayNeedle3,(char*)m_arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
dsr.writePatternParaToFile(head);
|
||
}
|
||
emit siPatternNeedlePreview();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_buttonCancel_clicked()
|
||
{
|
||
this->hide();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::slotNeedleBtnClicked()
|
||
{
|
||
QPushButton *button = (QPushButton*) this->sender();
|
||
|
||
if(button == NULL)
|
||
{
|
||
return;
|
||
}
|
||
|
||
if(button->isCheckable() == true)
|
||
{
|
||
button->setChecked(false);
|
||
button->setCheckable(false);
|
||
m_btnSelect = -1;
|
||
ui->pushButtonNone->setDisabled(true);
|
||
ui->pushButtonLeft->setDisabled(true);
|
||
ui->pushButtonRight->setDisabled(true);
|
||
ui->pushButtonDouble->setDisabled(true);
|
||
}
|
||
else
|
||
{
|
||
//其他按钮Checked变为false
|
||
for(int i = 0; i < m_NeedleBtnList.size(); i++)
|
||
{
|
||
m_NeedleBtnList[i]->setChecked(false);
|
||
m_NeedleBtnList[i]->setCheckable(false);
|
||
if(button == m_NeedleBtnList[i])
|
||
{
|
||
button->setCheckable(true);
|
||
button->setChecked(true);
|
||
m_btnSelect = i;
|
||
if(!ui->pushButtonNone->isEnabled())
|
||
{
|
||
ui->pushButtonNone->setDisabled(false);
|
||
ui->pushButtonLeft->setDisabled(false);
|
||
ui->pushButtonRight->setDisabled(false);
|
||
ui->pushButtonDouble->setDisabled(false);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::refreshNeedleText()
|
||
{
|
||
//刷新按钮显示
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle1); i++)
|
||
{
|
||
if(m_arrayNeedle1[i] == NEEDLENOTSET)
|
||
{
|
||
m_NeedleBtnList[i]->setText("X");
|
||
}
|
||
else if(m_arrayNeedle1[i] == NEEDLENONE)
|
||
{
|
||
m_NeedleBtnList[i]->setText("O");
|
||
}
|
||
else if(m_arrayNeedle1[i] == NEEDLELEFT)
|
||
{
|
||
m_NeedleBtnList[i]->setText("L");
|
||
}
|
||
else if(m_arrayNeedle1[i] == NEEDLERIGHT)
|
||
{
|
||
m_NeedleBtnList[i]->setText("R");
|
||
}
|
||
else
|
||
{
|
||
m_NeedleBtnList[i]->setText("X");
|
||
}
|
||
}
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle2); i++)
|
||
{
|
||
if(m_arrayNeedle2[i] == NEEDLENOTSET)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM]->setText("X");
|
||
}
|
||
else if(m_arrayNeedle2[i] == NEEDLENONE)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM]->setText("O");
|
||
}
|
||
else if(m_arrayNeedle2[i] == NEEDLELEFT)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM]->setText("L");
|
||
}
|
||
else if(m_arrayNeedle2[i] == NEEDLERIGHT)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM]->setText("R");
|
||
}
|
||
else
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM]->setText("X");
|
||
}
|
||
}
|
||
for(u16 i = 0; i < sizeof(m_arrayNeedle3); i++)
|
||
{
|
||
if(m_arrayNeedle3[i] == NEEDLENOTSET)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM*2]->setText("X");
|
||
}
|
||
else if(m_arrayNeedle3[i] == NEEDLENONE)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM*2]->setText("O");
|
||
}
|
||
else if(m_arrayNeedle3[i] == NEEDLELEFT)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM*2]->setText("L");
|
||
}
|
||
else if(m_arrayNeedle3[i] == NEEDLERIGHT)
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM*2]->setText("R");
|
||
}
|
||
else
|
||
{
|
||
m_NeedleBtnList[i+LAYOUTNEEDLENUM*2]->setText("X");
|
||
}
|
||
}
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::refreshView(s16 idx)
|
||
{
|
||
if(idx == 0)
|
||
{
|
||
QByteArray ary = m_pCurEmbData->getDsDat();
|
||
if(ary.size() > 0)
|
||
{
|
||
m_pCurEmbData->getOneDispDat(ary);
|
||
}
|
||
}
|
||
m_pCurEmbData->setViewInfo(ui->labelImage->width(),ui->labelImage->height());
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_newLRSpaceValue,m_newNSpaceValue,m_new12SpaceValue,m_new23SpaceValue,idx);
|
||
m_pCurEmbData->createDispFromEmbDs16DatForFlyShuttle();
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_NORMAL,1); // 重新画灰图
|
||
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelImage->setPixmap(patternPix);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::refreshSpace()
|
||
{
|
||
ui->pushButtonLRSpace->setText("6.35");
|
||
ui->pushButtonNSpace->setText("25.4");
|
||
ui->pushButton12Space->setText("76.2");
|
||
ui->pushButton23Space->setText("76.2");
|
||
m_leftRightNeedleSpace = 635;
|
||
m_needlesSpace = 2540;
|
||
m_needleLayoutSpace12 = 7620;
|
||
m_needleLayoutSpace23 = 7620;
|
||
|
||
m_newLRSpaceValue = 635;
|
||
m_newNSpaceValue = 2540;
|
||
m_new12SpaceValue = 7620;
|
||
m_new23SpaceValue = 7620;
|
||
|
||
refreshView(0);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::showView(QString filePath,QByteArray absAry)
|
||
{
|
||
ui->buttonOk->setDisabled(false);
|
||
m_filePath = filePath;
|
||
|
||
if(m_filePath.length() <= 0)
|
||
{
|
||
return;
|
||
}
|
||
|
||
m_leftRightNeedleSpace = 635;//左右针间距
|
||
m_needlesSpace = 2540;//针与针之间间距
|
||
m_needleLayoutSpace12 = 7620;//针排间距
|
||
m_needleLayoutSpace23 = 7620;//针排间距
|
||
memset(m_arrayNeedle1,NEEDLENOTSET,sizeof(m_arrayNeedle1));
|
||
memset(m_arrayNeedle2,NEEDLENOTSET,sizeof(m_arrayNeedle2));
|
||
memset(m_arrayNeedle3,NEEDLENOTSET,sizeof(m_arrayNeedle3));
|
||
|
||
QFileInfo file(m_filePath);
|
||
QString ext = file.suffix().toUpper();
|
||
|
||
//读取排针信息
|
||
if(ext == "QUI")
|
||
{
|
||
DataFileQui qui;
|
||
qui.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
QuiFileHead *head = qui.getQuiHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = head->leftRightLen;//左右针间距
|
||
m_needlesSpace = head->HStep;//针与针之间间距
|
||
m_needleLayoutSpace12 = head->VStep12;//针排间距
|
||
m_needleLayoutSpace23 = head->VStep23;//针排间距
|
||
|
||
memcpy((char*)m_arrayNeedle1,(char*)head->arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)m_arrayNeedle2,(char*)head->arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)m_arrayNeedle3,(char*)head->arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
m_new12SpaceValue = m_needleLayoutSpace12;
|
||
m_new23SpaceValue = m_needleLayoutSpace23;
|
||
m_newLRSpaceValue = m_leftRightNeedleSpace;
|
||
m_newNSpaceValue = m_needlesSpace;
|
||
}
|
||
else if(ext == "QUIX")
|
||
{
|
||
DataFileQuix quix;
|
||
quix.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
QuixFileHead *head = quix.getQuixHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = head->leftRightLen;//左右针间距
|
||
m_needlesSpace = head->HStep;//针与针之间间距
|
||
m_needleLayoutSpace12 = head->VStep12;//针排间距
|
||
m_needleLayoutSpace23 = head->VStep23;//针排间距
|
||
|
||
memcpy((char*)m_arrayNeedle1,(char*)head->arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)m_arrayNeedle2,(char*)head->arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)m_arrayNeedle3,(char*)head->arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
m_new12SpaceValue = m_needleLayoutSpace12;
|
||
m_new23SpaceValue = m_needleLayoutSpace23;
|
||
m_newLRSpaceValue = m_leftRightNeedleSpace;
|
||
m_newNSpaceValue = m_needlesSpace;
|
||
}
|
||
else if(ext == "DSR")
|
||
{
|
||
DataFileDsr dsr;
|
||
dsr.initFile(m_filePath);
|
||
|
||
//将花样参数配置写回到源文件中,需放在转换中间数据之前,因为中间数据需要根据文件头参数进行数据变换
|
||
DsrHead *head = dsr.getDsrHead();
|
||
if(head == NULL){return;}
|
||
|
||
m_leftRightNeedleSpace = head->leftRightLen;//左右针间距
|
||
m_needlesSpace = head->HStep;//针与针之间间距
|
||
m_needleLayoutSpace12 = head->VStep12;//针排间距
|
||
m_needleLayoutSpace23 = head->VStep23;//针排间距
|
||
|
||
memcpy((char*)m_arrayNeedle1,(char*)head->arrayNeedle1,sizeof(m_arrayNeedle1));
|
||
memcpy((char*)m_arrayNeedle2,(char*)head->arrayNeedle2,sizeof(m_arrayNeedle2));
|
||
memcpy((char*)m_arrayNeedle3,(char*)head->arrayNeedle3,sizeof(m_arrayNeedle3));
|
||
|
||
ui->pushButtonLRSpace->setText(QString::number(m_leftRightNeedleSpace/100));
|
||
ui->pushButtonNSpace->setText(QString::number(m_needlesSpace/100));
|
||
ui->pushButton12Space->setText(QString::number(m_needleLayoutSpace12/100));
|
||
ui->pushButton23Space->setText(QString::number(m_needleLayoutSpace23/100));
|
||
|
||
m_new12SpaceValue = m_needleLayoutSpace12;
|
||
m_new23SpaceValue = m_needleLayoutSpace23;
|
||
m_newLRSpaceValue = m_leftRightNeedleSpace;
|
||
m_newNSpaceValue = m_needlesSpace;
|
||
}
|
||
|
||
refreshNeedleText();
|
||
|
||
m_pCurEmbData->setViewInfo(ui->labelImage->width(),ui->labelImage->height());
|
||
m_pCurEmbData->clear();
|
||
m_pCurEmbData->setAbsDat(absAry);
|
||
m_pCurEmbData->m_editedflag = 1;
|
||
QByteArray ary = m_pCurEmbData->getDsDat();
|
||
if(ary.size() > 0)
|
||
{
|
||
m_pCurEmbData->getOneDispDat(ary);
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_newLRSpaceValue,m_newNSpaceValue,m_new12SpaceValue,m_new23SpaceValue,0);
|
||
m_pCurEmbData->createDispFromEmbDs16DatForFlyShuttle();
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_NORMAL,1); // 重新画灰图
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelImage->setPixmap(patternPix);
|
||
}
|
||
|
||
QWidget::show();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::showTempView(QByteArray &dat)
|
||
{
|
||
ui->buttonOk->setDisabled(true);
|
||
// memset(m_arrayNeedle1,NEEDLENOTSET,sizeof(m_arrayNeedle1));
|
||
// memset(m_arrayNeedle2,NEEDLENOTSET,sizeof(m_arrayNeedle2));
|
||
// memset(m_arrayNeedle3,NEEDLENOTSET,sizeof(m_arrayNeedle3));
|
||
|
||
refreshNeedleText();
|
||
|
||
m_pCurEmbData->setViewInfo(ui->labelImage->width(),ui->labelImage->height());
|
||
m_pCurEmbData->clear();
|
||
m_pCurEmbData->setAbsDat(dat);
|
||
m_pCurEmbData->m_editedflag = 1;
|
||
QByteArray ary = m_pCurEmbData->getDsDat();
|
||
if(ary.size() > 0)
|
||
{
|
||
m_pCurEmbData->getOneDispDat(ary);
|
||
m_pCurEmbData->resetLayoutDispDat(m_arrayNeedle1,m_arrayNeedle2,m_arrayNeedle3,m_leftRightNeedleSpace,m_needlesSpace,m_needleLayoutSpace12,m_needleLayoutSpace23,0);
|
||
m_pCurEmbData->createDispFromEmbDs16DatForFlyShuttle();
|
||
m_pCurEmbData->setDispMode(EmbData::DISP_ALL_NORMAL,1); // 重新画灰图
|
||
QPixmap patternPix = m_pCurEmbData->getPreviewImage();
|
||
ui->labelImage->setPixmap(patternPix);
|
||
}
|
||
|
||
QWidget::show();
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_buttonClear_clicked()
|
||
{
|
||
memset(m_arrayNeedle1,NEEDLENOTSET,sizeof(m_arrayNeedle1));
|
||
memset(m_arrayNeedle2,NEEDLENOTSET,sizeof(m_arrayNeedle2));
|
||
memset(m_arrayNeedle3,NEEDLENOTSET,sizeof(m_arrayNeedle3));
|
||
refreshNeedleText();
|
||
refreshView(0);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButtonLRSpace_clicked()
|
||
{
|
||
int rslt=0;
|
||
m_newLRSpaceValue= ui->pushButtonLRSpace->text().toDouble()*100;
|
||
NumerInputDialog ndlg(this);
|
||
ndlg.setTitleStr(ui->labelLRSpace->text());
|
||
ndlg.setUnitStr("mm");
|
||
ndlg.setValueAndRange(m_newLRSpaceValue, 0, 999999999, 2);
|
||
rslt = ndlg.exec();
|
||
|
||
if (rslt == 1)//点了确认按钮
|
||
{
|
||
s32 val = ndlg.getValue();
|
||
if (val != m_newLRSpaceValue)//更改后的值不等于之前存的值
|
||
{
|
||
m_newLRSpaceValue = val;
|
||
}
|
||
}
|
||
ui->pushButtonLRSpace->setText(QString::number(m_newLRSpaceValue/100));
|
||
refreshView(0);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButtonNSpace_clicked()
|
||
{
|
||
int rslt=0;
|
||
m_newNSpaceValue=ui->pushButtonNSpace->text().toDouble()*100;
|
||
NumerInputDialog ndlg(this);
|
||
ndlg.setTitleStr(ui->labelNSpace->text());
|
||
ndlg.setUnitStr("mm");
|
||
ndlg.setValueAndRange(m_newNSpaceValue, 0, 999999999, 2);
|
||
rslt = ndlg.exec();
|
||
|
||
if (rslt == 1)//点了确认按钮
|
||
{
|
||
s32 val = ndlg.getValue();
|
||
if (val != m_newNSpaceValue)//更改后的值不等于之前存的值
|
||
{
|
||
m_newNSpaceValue = val;
|
||
}
|
||
}
|
||
ui->pushButtonNSpace->setText(QString::number(m_newNSpaceValue/100));
|
||
refreshView(0);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButton12Space_clicked()
|
||
{
|
||
int rslt=0;
|
||
m_new12SpaceValue=ui->pushButton12Space->text().toDouble()*100;
|
||
NumerInputDialog ndlg(this);
|
||
ndlg.setTitleStr(ui->label12Space->text());
|
||
ndlg.setUnitStr("mm");
|
||
ndlg.setValueAndRange(m_new12SpaceValue, 0, 999999999, 2);
|
||
rslt = ndlg.exec();
|
||
|
||
if (rslt == 1)//点了确认按钮
|
||
{
|
||
s32 val = ndlg.getValue();
|
||
if (val != m_new12SpaceValue)//更改后的值不等于之前存的值
|
||
{
|
||
m_new12SpaceValue = val;
|
||
}
|
||
}
|
||
ui->pushButton12Space->setText(QString::number(m_new12SpaceValue/100));
|
||
refreshView(0);
|
||
}
|
||
|
||
void PatternNeedleLayoutWidget::on_pushButton23Space_clicked()
|
||
{
|
||
int rslt=0;
|
||
m_new23SpaceValue=ui->pushButton23Space->text().toDouble()*100;
|
||
NumerInputDialog ndlg(this);
|
||
ndlg.setTitleStr(ui->label23Space->text());
|
||
ndlg.setUnitStr("mm");
|
||
ndlg.setValueAndRange(m_new23SpaceValue, 0, 999999999, 2);
|
||
rslt = ndlg.exec();
|
||
|
||
if (rslt == 1)//点了确认按钮
|
||
{
|
||
s32 val = ndlg.getValue();
|
||
if (val != m_new23SpaceValue)//更改后的值不等于之前存的值
|
||
{
|
||
m_new23SpaceValue = val;
|
||
}
|
||
}
|
||
ui->pushButton23Space->setText(QString::number(m_new23SpaceValue/100));
|
||
refreshView(0);
|
||
}
|