#include "DateVarSet.h" #include "ui_datevarset.h" #include #include #include unsigned char vartypeR = 0x00; //标记需要替换的类型 如:年 月 日 //QMap replaceValueMap; QMap> replaceValueMap; DateVarSet::DateVarSet(QWidget *parent) : QWidget(parent), ui(new Ui::DateVarSet) { ui->setupUi(this); digitWidth = 4; //connect(ui->radioButtonCurDate,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); //connect(ui->radioButtonExpiry,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonVarRandom,SIGNAL(toggled(bool)),this,SLOT(onRanDomPressed(bool))); //connect(ui->radioButtonHour,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonMinute,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonWeek,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonMonth,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonSecond,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonDay,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // // connect(ui->radioButtonXDay,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonYear,SIGNAL(toggled(bool)),this,SLOT( slt_handleDigits())); // connect(ui->radioButtonVar1,SIGNAL(toggled(bool)),this,SLOT( onDigitFourBit(bool))); // connect(ui->radioButtonVar2,SIGNAL(toggled(bool)),this,SLOT( onDigitFourBit(bool))); // connect(ui->radioButtonCNT3,SIGNAL(toggled(bool)),this,SLOT( onDigitFourBit(bool))); //ui->radioButtonXDay->hide(); varTypeSet = 0; varHtmlStr = ""; currPage = 0; QGridLayout* layout = new QGridLayout(); layout->setMargin(0); layout->setContentsMargins(0, 0, 0, 0); m_generalSettings = new ItemGeneralSettings(); layout->addWidget(m_generalSettings); ui->generalTab->setLayout(layout); init(); initReplaceValue(); } void DateVarSet::init() { applyStyleSheet(); // 连接信号槽 connect(ui->checkBtn, &QPushButton::clicked, this, &DateVarSet::buttonClickedSlot); connect(ui->closeBtn,&QPushButton::clicked, this, &DateVarSet::buttonClickedSlot); connect(ui->btnPoint,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnColon,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnComma,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnSlash,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnSemicolon,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnUnderline,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnDash,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnBackSpace,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnHour,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnMinute,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnSecond,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnDay,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnMonth,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnYear4,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnYear2,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnWeekOfYear,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnWeek,&QPushButton::clicked,this,&DateVarSet::buttonClickedSlot); connect(ui->btnSpace, &QPushButton::clicked, this, &DateVarSet::buttonClickedSlot); connect(ui->lineEdit_Replace1, &QLineEdit::textChanged, std::bind(&DateVarSet::onLineEditReplaceChanged, this, 0, std::placeholders::_1)); connect(ui->lineEdit_Replace2, &QLineEdit::textChanged, std::bind(&DateVarSet::onLineEditReplaceChanged, this, 1, std::placeholders::_1)); connect(ui->lineEdit_Replace3, &QLineEdit::textChanged, std::bind(&DateVarSet::onLineEditReplaceChanged, this, 2, std::placeholders::_1)); connect(ui->lineEdit_Replace4, &QLineEdit::textChanged, std::bind(&DateVarSet::onLineEditReplaceChanged, this, 3, std::placeholders::_1)); } void DateVarSet::initReplaceValue(){ monthList.clear(); for (int i = 1; i <= 12; ++i) { monthList.append(QString("%1").arg(i, 2, 10, QChar('0'))); // 补零格式化 } dataList.clear(); dataList << "0" << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9" << "A" << "B" << "C" << "D" << "E" << "F"; weekList.clear(); weekList << "MON" << "TUE" << "WED" << "THU" << "FRI" << "SAT" << "SUN"; yearList.clear(); int startYear = QDate::currentDate().year(); for (int i = 0; i < 16; ++i) { yearList << QString("%1").arg(startYear + i); } yearInitList.clear(); startYear = QDate::currentDate().year(); for(int i=0;i<16;i++){ yearInitList<cb_replaceType->currentIndex() == 2) //index 2 --- 月 loadMonthShow(); else if(ui->cb_replaceType->currentIndex() == 0) //index 0 --- 数据 loadDataShow(); else if(ui->cb_replaceType->currentIndex() == 1) //index 1 --- 周几 loadWeekShow(); else if(ui->cb_replaceType->currentIndex() == 3) //index 3 --- 年份 loadYearShow(); else if(ui->cb_replaceType->currentIndex() == 4) //index 4 --- 天数 loadDayShow(); else if(ui->cb_replaceType->currentIndex() == 5) //index 5 --- 小时 loadHourShow(); // currPage = 0; } void DateVarSet::bindSysPara(SysPara *sysPara){ this->sysPara = sysPara; } void DateVarSet::bindTxTEdit(QTextEdit* textEdit){ m_textEdit = textEdit; } void DateVarSet::buttonClickedSlot() { QPushButton* btn = qobject_cast(sender()); if (btn == ui->checkBtn) { if(true) useReplaceInsertVar(); else on_buttonInsertVari_pressed(); auto item = dynamic_cast(m_generalSettings->currentItem()); if(item) item->setModel(dateModel()); emit sendButtonClickedSignal(1); return; }else if(btn == ui->closeBtn) { auto item = m_generalSettings->currentItem(); if(item) item->setAttrs(m_backup); emit sendButtonClickedSignal(2); return; }else if(btn == ui->btnPoint){ ui->lineEdit_DateFormat->insert("."); }else if(btn == ui->btnColon){ ui->lineEdit_DateFormat->insert(":"); }else if(btn == ui->btnComma){ ui->lineEdit_DateFormat->insert(","); }else if(btn == ui->btnSlash){ ui->lineEdit_DateFormat->insert("/"); }else if(btn == ui->btnSemicolon){ ui->lineEdit_DateFormat->insert(";"); }else if(btn == ui->btnUnderline){ ui->lineEdit_DateFormat->insert("_"); }else if(btn == ui->btnDash){ ui->lineEdit_DateFormat->insert("-"); }else if(btn == ui->btnBackSpace){ ui->lineEdit_DateFormat->setFocus(); emit backSpaceBtn(); }else if(btn == ui->btnHour){ ui->lineEdit_DateFormat->insert("HH"); }else if(btn == ui->btnMinute){ ui->lineEdit_DateFormat->insert("mm"); }else if(btn == ui->btnSecond){ ui->lineEdit_DateFormat->insert("ss"); }else if(btn == ui->btnDay){ ui->lineEdit_DateFormat->insert("dd"); }else if(btn == ui->btnMonth){ ui->lineEdit_DateFormat->insert("MM"); }else if(btn == ui->btnYear4){ ui->lineEdit_DateFormat->insert("yyyy"); }else if(btn == ui->btnYear2){ ui->lineEdit_DateFormat->insert("YY"); } else if(btn == ui->btnWeekOfYear){ ui->lineEdit_DateFormat->insert("c"); } else if(btn == ui->btnWeek){ ui->lineEdit_DateFormat->insert("w"); } else if(btn == ui->btnSpace) ui->lineEdit_DateFormat->insert(" "); } DateVarSet::~DateVarSet() { delete ui; } void DateVarSet::getValue(int *varType,int *digitalWidth,unsigned char *splitMode){ int type = 0,width = 0; // if(ui->radioButtonYear->isChecked()) // type = 0; // else if(ui->radioButtonMonth->isChecked()) // type = 1; // else if(ui->radioButtonDay->isChecked()) // type = 2; // else if(ui->radioButtonWeek->isChecked()) // type = 3; // else if(ui->radioButtonHour->isChecked()) // type = 4; // else if(ui->radioButtonMinute->isChecked()) // type = 5; // else if(ui->radioButtonSecond->isChecked()) // type = 6; // else if(ui->radioButtonXDay->isChecked()) // type = 14; // else if(ui->radioButtonExpiry->isChecked()) // { // type = 80; // } // else if(ui->radioButtonCurDate->isChecked()) // { // type = 81; // } // width = ui->cb_digits->currentText().toInt(); if(varType && digitalWidth){ *varType = type; *digitalWidth = width; } } void DateVarSet::on_buttonInsertVari_pressed() { QString s,fontname=""; if(sysPara) { s= sysPara->para.qrOption.text; if(s.length()>120)s="string to long."; } int pixelSize = 9; QFont font; fontname = "Dinkie9"; if(m_generalSettings->currentItem()) { fontname = m_generalSettings->font().family(); } else { font.setFamily(fontname); font.setPixelSize(pixelSize); font.setWeight(false && (pixelSize<=16) ?QFont::Bold:QFont::Normal); font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace); } QFontMetrics fontMetrics(font); int width = (fontMetrics.width("0123456789"))/10; int height = fontMetrics.ascent()+ fontMetrics.descent(); int digitalNum; int varType; height = font.pixelSize(); unsigned char splitMode=sysPara->para.ExpirySplitMode; getValue(&varType,&digitalNum,&splitMode); fmt = m_textEdit->currentCharFormat (); if((varType<9 || varType==14)) { int varType1= varType; if(fontname.contains("SerifL") ||fontname.contains("serifl") ) varType1= 20+varType; else if(fontname.contains("SerifR") ||fontname.contains("serifr") ) varType1= 20+varType; else if(fontname.contains("bangla") ) varType1= 30+varType; else if(fontname.contains("biyangF") ) varType1= 50+varType; else if(fontname.contains("Roman") ) varType1= 60+varType; // varType1= 40+varType; // 变量右横时取 40,左横时取 20 m_textEdit->insertHtml(QString("") .arg(varType).arg(false && (pixelSize<=16)?(digitalNum*100 + 75):digitalNum) .arg(height+1).arg(width*digitalNum).arg(varType1)); //插入索引后 qDebug() << m_textEdit->toHtml(); } // 普通变量 VarType<=8 else if(varType ==EXPIRYDATE){ //80 :/80/image/expiryDate8.bmp qrc:/80/image/expiryDate875.bmp // QImage img; // img.load("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/80/image/digitalWidth8.bmp"); // img.setPixel(0,4,0xffff0Cfc); // img.setPixel(0,5,0xffff0Cfc); // img.save("/home/student/mini2440/UP/QtUI/QRUI_SUNV54/80/image/curDate8.bmp"); // 0xff00fc int varType1 = varType; if(fontname.contains("bangla") ) { varType1= 10+varType; } else if(fontname.contains("biyangF") ) { varType1= 20+varType; } else if(fontname.contains("Roman") ) { varType1= 30+varType; } sysPara->print.ExpiryVar.splitMode=splitMode; font.setLetterSpacing(QFont::AbsoluteSpacing,sysPara->para.textEditCharSpace); QFontMetrics fontMetrics(font); QHash dateFormat; dateFormat.insert(0,"yyyy-MM-dd"); dateFormat.insert(1,"yyyy/MM/dd"); dateFormat.insert(2,"yyyyMMdd"); dateFormat.insert(3,"yyyy年MM月dd日"); dateFormat.insert(4,"yyyy-MM-dd hh:mm"); dateFormat.insert(5,"yyyy/MM/dd hh:mm"); dateFormat.insert(6,"yyyyMMddhhmm"); dateFormat.insert(7,"yyyy年MM月dd日 hh:mm"); dateFormat.insert(8,"hh:mm"); dateFormat.insert(9,"ddhhmm"); dateFormat.insert(10,"dd MM yy"); dateFormat.insert(11,"dd/MM/yy"); dateFormat.insert(12,"dd/MM/yyyy"); dateFormat.insert(13,"dd-MM-yy"); dateFormat.insert(14,"dd-MM-yyyy"); //dateFormat.insert(10,"x"); QString DateTime = QDateTime::currentDateTime().toString(dateFormat.value(splitMode)); int dateTimeWidth = fontMetrics.width(DateTime); if(DateTime == "x") { qDebug()<<" x handle"; m_textEdit->insertHtml(QString("") .arg(varType).arg(false && (pixelSize<=16)?(175):1) .arg(height+1).arg(dateTimeWidth+4)); //插入索引后 sysPara->print.ExpiryVar.bold = false; m_textEdit->mergeCurrentCharFormat(fmt); }else { if(splitMode == 3 || splitMode ==7 ) { height = fontMetrics.ascent(); } m_textEdit->insertHtml(QString("") .arg(varType1).arg(false && (pixelSize<=16)?(875):8) .arg(height+1).arg(dateTimeWidth+4)); //插入索引后 sysPara->print.ExpiryVar.bold = false; m_textEdit->mergeCurrentCharFormat(fmt); } } else if(varType ==CURDATE ){ //81 :/80/image/expiryDate8.bmp qrc:/80/image/curDate8.bmp int varType1 = varType; if(fontname.contains("bangla") ) { varType1= 10+varType; } else if(fontname.contains("biyangF") ) { varType1= 20+varType; } else if(fontname.contains("biyangF") ) { varType1= 30+varType; } // 0xff00fc //qDebug()<<"CurDateVar height"<print.CurDateVar.splitMode = splitMode; font.setLetterSpacing(QFont::AbsoluteSpacing, sysPara->para.textEditCharSpace); QFontMetrics fontMetrics(font); QHash dateFormat; dateFormat.insert(0,"yyyy-MM-dd"); dateFormat.insert(1,"yyyy/MM/dd"); dateFormat.insert(2,"yyyyMMdd"); dateFormat.insert(3,"yyyy年MM月dd日"); dateFormat.insert(4,"yyyy-MM-dd hh:mm"); dateFormat.insert(5,"yyyy/MM/dd hh:mm"); dateFormat.insert(6,"yyyyMMddhhmm"); dateFormat.insert(7,"yyyy年MM月dd日 hh:mm"); dateFormat.insert(8,"hh:mm"); dateFormat.insert(9,"ddhhmm"); dateFormat.insert(10,"dd MM yy"); dateFormat.insert(11,"dd/MM/yy"); dateFormat.insert(12,"dd/MM/yyyy"); dateFormat.insert(13,"dd-MM-yy"); dateFormat.insert(14,"dd-MM-yyyy"); QString DateTime = QDateTime::currentDateTime().toString(dateFormat.value(splitMode)); int dateTimeWidth = fontMetrics.width(DateTime) ; qDebug()<<"insert splitMode="<insertHtml(QString("") .arg(varType).arg(false && (pixelSize<=16)?(875):1) .arg(height+1).arg(dateTimeWidth+4)); //插入索引后 m_textEdit->mergeCurrentCharFormat(fmt); }else { if(splitMode == 3 || splitMode ==7 ) { height = fontMetrics.ascent();//fontMetrics.ascent()+ fontMetrics.descent(); } m_textEdit->insertHtml(QString("") .arg(varType1).arg(false && (pixelSize<=16)?(875):8) .arg(height+1).arg(dateTimeWidth+4)); //插入索引后 m_textEdit->mergeCurrentCharFormat(fmt); } } m_textEdit->setFocus(); } void DateVarSet::edit(PicDateItem*item) { m_backup.clear(); if(!item) { qWarning() << "Invalied arguement: " << item; return; } item->saveAttrs(m_backup); m_generalSettings->edit(item); setDateModel(item->model()); } DateItemModel DateVarSet::dateModel() { DateItemModel model; model.datetimePattern = ui->lineEdit_DateFormat->text(); model.dataMap = dataList; model.weeksMap = weekList; model.hoursMap = hourList; model.monthsMap = monthList; model.daysMap = dayList; for(int i = 0; i < yearInitList.size(); ++i) { model.yearsMap[yearInitList[i]] = yearList[i]; } if(ui->expirationCBox->currentIndex() == 0) { model.daysOffset = ui->expirationNumCBox->value(); model.monthsOffset = 0; } else if(ui->expirationCBox->currentIndex() >= 1) { model.monthsOffset = ui->expirationNumCBox->value(); model.daysOffset = 0; } else { model.monthsOffset = 0; model.daysOffset = 0; } return model; } void DateVarSet::setDateModel(const DateItemModel &model) { ui->lineEdit_DateFormat->setText(model.datetimePattern); dataList = model.dataMap; weekList = model.weeksMap; hourList = model.hoursMap; monthList = model.monthsMap; dayList = model.daysMap; yearInitList = model.yearsMap.keys(); yearList = model.yearsMap.values(); if(model.daysOffset != 0) { ui->expirationCBox->setCurrentIndex(0); ui->expirationNumCBox->setValue(model.daysOffset); } else if(model.monthsOffset != 0) { ui->expirationCBox->setCurrentIndex(1); ui->expirationNumCBox->setValue(model.monthsOffset); } else { ui->expirationCBox->setCurrentIndex(0); ui->expirationNumCBox->setValue(0); } loadMonthShow(); } void DateVarSet::useReplaceInsertVar(){ QString dateFormat = ui->lineEdit_DateFormat->text(); m_textEdit->setText(dateFormat); } QString DateVarSet::getFamilyName(int fontsize){ return "YaHei"+QString::number(fontsize); } void DateVarSet::applyStyleSheet() { QString styleSheet = R"( QPushButton#closeBtn, QPushButton#checkBtn{ background-color: #E6F7FF; border: 1px solid #87CEEB; border-radius: 4px; font-size: 24px; color: #228B22; } QPushButton#closeBtn:hover,QPushButton#checkBtn:hover{ background-color: #D1E9FF; } QPushButton#closeBtn:pressed,QPushButton#checkBtn:pressed{ background-color: #BAE7FF; } QPushButton { background-color: #5396C1; color: #ffffff; border: 1px solid #000000; border-radius: 3px; font-size: 18px; font-weight:500; width: 180px; height: 90px; } QPushButton:hover { background-color: #5396C1; } QPushButton:disabled { background-color: #7C828E; color: #606060; border-color: #808080; } QComboBox { border: 1px solid #000000; border-radius: 3px; font-size: 14px; width: 180px; height: 90px; padding-left: 10px; /* 文字左边距,避免紧贴边缘 */ } /* 下拉箭头区域 */ QComboBox::drop-down { border: 1px solid #333333; border-radius: 3px; width: 30px; /* 箭头区域宽度 */ background-color: #5396C1; } /* 下拉箭头图标 */ QComboBox::down-arrow { image: url(image/down_white.png); width: 16px; /* 图标显示宽度 */ height: 16px; /* 图标显示高度 */ } /* 悬停状态 */ QComboBox:hover { background-color: #efefef; } // 下拉框 QComboBox QAbstractItemView { border: 1px solid #000000; border-radius: 3px; font-size: 14px; selection-background-color: #5396C1; /* 选中项背景色(稍深) */ selection-color: #ffffff; } )"; this->setStyleSheet(styleSheet); } void DateVarSet::on_CBDateFormat1_currentIndexChanged(int index) { // sysPara->para.ExpirySplitMode = ui->CBDateFormat1->currentIndex(); sysPara->para.ExpirySplitMode = 0; } void DateVarSet::on_cb_replaceType_currentIndexChanged(int index) { if(index == 0){ loadDataShow(); }else if(index == 1){ loadWeekShow(); }else if(index == 2){ loadMonthShow(); }else if(index == 3){ loadYearShow(); }else if(index == 4){ loadDayShow(); }else if(index == 5){ loadHourShow(); } } void DateVarSet::loadMonthShow(){ if(currPage > 2) //最大显示3页 currPage = 2; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit) lineEdit->setText(QString::number(i+1)); QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(monthList.at(i)); lineEdit2->blockSignals(b); } objectIndex++; } } void DateVarSet::loadDataShow(){ if(currPage >3) //最大显示4页 currPage =3; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit) lineEdit->setText(QString::number(i)); QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(dataList.at(i)); lineEdit2->blockSignals(b); } objectIndex++; } } void DateVarSet::loadWeekShow(){ initShowLineEdit(); if(currPage >1) //最大显示4页 currPage =1; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit) lineEdit->setText(QString::number(i+1)); QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(weekList.at(i)); lineEdit2->blockSignals(b); } objectIndex++; } } void DateVarSet::loadYearShow(){ if(currPage >3) //最大显示4页 currPage =3; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit && isetText(QString::number(yearInitList.at(i))); } QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(yearList.at(i)); lineEdit2->blockSignals(b); } objectIndex++; } } void DateVarSet::loadDayShow(){ initShowLineEdit(); if(currPage > 7) //最大显示8页 currPage = 7; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit) lineEdit->setText(QString::number(i+1)); QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(dayList.at(i)); lineEdit2->blockSignals(false); } objectIndex++; } } void DateVarSet::loadHourShow(){ if(currPage > 5) //最大显示6页 currPage = 5; int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject); if(lineEdit) lineEdit->setText(QString::number(i)); QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(hourList.at(i)); lineEdit2->blockSignals(b); } objectIndex++; } } void DateVarSet::getMonthValue(){ int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject2); if(lineEdit2) monthList[i] = lineEdit2->text(); objectIndex++; } } void DateVarSet::getYearValue(){ int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject2); if(lineEdit2) yearList[i] = lineEdit2->text(); objectIndex++; } // for (int i = 0; i < yearList.size(); ++i) { // qDebug()<<"i:"<findChild(strObject2); if(lineEdit2) dayList[i] = lineEdit2->text(); objectIndex++; } } void DateVarSet::getHourValue(){ int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject2); if(lineEdit2) hourList[i] = lineEdit2->text(); objectIndex++; } } void DateVarSet::getWeekValue(){ int objectIndex = 1; for(int i=currPage*4;(i<(currPage+1)*4)&&(ifindChild(strObject2); if(lineEdit2) weekList[i] = lineEdit2->text(); objectIndex++; } } void DateVarSet::on_btnUP_clicked() { if(currPage<1) return; currPage = currPage-1; if(ui->cb_replaceType->currentIndex() == 2){ loadMonthShow(); }else if(ui->cb_replaceType->currentIndex() == 0){ loadDataShow(); }else if(ui->cb_replaceType->currentIndex() == 1){ loadWeekShow(); }else if(ui->cb_replaceType->currentIndex() == 3){ loadYearShow(); }else if(ui->cb_replaceType->currentIndex() == 4){ loadDayShow(); }else if(ui->cb_replaceType->currentIndex() == 5){ loadHourShow(); } } void DateVarSet::on_btnDown_clicked() { initShowLineEdit(); int currentIndex = ui->cb_replaceType->currentIndex(); if (currentIndex == 2) { // Month if (currPage < 2) { currPage++; } loadMonthShow(); return; } if (currentIndex == 0) { // Data if (currPage < 3) { currPage++; } loadDataShow(); return; } if(currentIndex == 1){ if(currPage<1){ currPage++; } loadWeekShow(); return; } if(currentIndex == 3){ if(currPage<3){ currPage++; } loadYearShow(); return; } if(currentIndex == 4){ if(currPage<7){ currPage++; } loadDayShow(); return; } if(currentIndex == 5){ if(currPage < 5){ currPage++; } loadHourShow(); return; } } void DateVarSet::initShowLineEdit(){ for(int i=1;i<=4;i++){ QString strObject = QString("lineEditName") + QString::number(i); QLineEdit *lineEdit = this->findChild(strObject); if(lineEdit) lineEdit->setText(""); QString strObject2 = QString("lineEdit_Replace") + QString::number(i); QLineEdit *lineEdit2 = this->findChild(strObject2); if(lineEdit2) { auto b = lineEdit2->blockSignals(true); lineEdit2->setText(""); lineEdit2->blockSignals(b); } } } void DateVarSet::on_btnPreSetValue_clicked() { if(ui->cb_replaceType->currentIndex() == 2){ //index 2 --- 替代月份 getMonthValue(); vartypeR = vartypeR | 1<<2; QMap monthMap; for(int i=0;icb_replaceType->currentIndex() == 3){ //index 3 --- 替代年份 getYearValue(); vartypeR = vartypeR | 1<<3; QMap yearMap; for(int i=0;icb_replaceType->currentIndex() == 4){ //index 4 --- 替代天数 getDayValue(); vartypeR = vartypeR | 1<<4; QMap dayMap; for(int i=0;icb_replaceType->currentIndex() == 5){ //index 5 --- 替代小时 getHourValue(); vartypeR = vartypeR | 1<<5; QMap hourMap; for(int i=0;icb_replaceType->currentIndex() == 1){ getWeekValue(); vartypeR = vartypeR | 1<<1; QMap weekMap; for(int i=0;icb_digits->clear(); // if (ui->radioButtonCurDate->isChecked() || ui->radioButtonExpiry->isChecked()) { // for (int i = 1; i <= 15; i++) { // ui->cb_digits->addItem(QString::number(i)); // } // } // else { // for (int j = 1; j <= 8; j++) { // ui->cb_digits->addItem(QString::number(j)); // } // } } void DateVarSet::onLineEditReplaceChanged(int i, QString txt) { auto mapIdx = currPage * 4 + i; switch(ui->cb_replaceType->currentIndex()) { case 0: dataList[mapIdx] = txt; break; case 1: weekList[mapIdx] = txt; break; case 2: monthList[mapIdx] = txt; break; case 3: yearList[mapIdx] = txt; break; case 4: dayList[mapIdx] = txt; break; case 5: hourList[mapIdx] = txt; break; case 6: default: break; } }