2026年5月25日15:57:50
This commit is contained in:
+11
-258
@@ -133,31 +133,14 @@ void DateVarSet::bindSysPara(SysPara *sysPara){
|
||||
this->sysPara = sysPara;
|
||||
}
|
||||
|
||||
void DateVarSet::bindTxTEdit(QTextEdit* textEdit){
|
||||
m_textEdit = textEdit;
|
||||
}
|
||||
|
||||
void DateVarSet::buttonClickedSlot()
|
||||
{
|
||||
QPushButton* btn = qobject_cast<QPushButton*>(sender());
|
||||
if (btn == ui->checkBtn) {
|
||||
if(true)
|
||||
useReplaceInsertVar();
|
||||
else
|
||||
on_buttonInsertVari_pressed();
|
||||
|
||||
auto item = dynamic_cast<PicDateItem*>(m_generalSettings->currentItem());
|
||||
if(item)
|
||||
item->setModel(dateModel());
|
||||
|
||||
if (btn == ui->checkBtn) {
|
||||
emit sendButtonClickedSignal(1);
|
||||
return;
|
||||
|
||||
}else if(btn == ui->closeBtn) {
|
||||
auto item = m_generalSettings->currentItem();
|
||||
if(item)
|
||||
item->setAttrs(m_backup);
|
||||
|
||||
emit sendButtonClickedSignal(2);
|
||||
return;
|
||||
|
||||
@@ -211,246 +194,12 @@ DateVarSet::~DateVarSet()
|
||||
|
||||
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("<img src=':/%1/%5/../image/digitalWidth%2.bmp' height='%3' width='%4' style=\"vertical-align: bottom;\" />")
|
||||
.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<int, QString> 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("<img src=':/%1/image/digitalWidth%2.bmp' height='%3' width='%4'/>")
|
||||
.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("<img src=':/%1/image/expiryDate%2.bmp' height='%3' width='%4' style=\"vertical-align: bottom;\" />")
|
||||
.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"<<height;
|
||||
sysPara->print.CurDateVar.splitMode = splitMode;
|
||||
font.setLetterSpacing(QFont::AbsoluteSpacing, sysPara->para.textEditCharSpace);
|
||||
QFontMetrics fontMetrics(font);
|
||||
|
||||
QHash<int, QString> 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="<<splitMode;
|
||||
|
||||
if(DateTime == "x")
|
||||
{
|
||||
qDebug()<<" x handle";
|
||||
m_textEdit->insertHtml(QString("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4'/>")
|
||||
.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("<img src=':/%1/image/curDate%2.bmp' height='%3' width='%4' style=\"vertical-align: bottom;\"/>")
|
||||
.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;
|
||||
@@ -512,16 +261,20 @@ void DateVarSet::setDateModel(const DateItemModel &model)
|
||||
ui->tabWidget->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
void DateVarSet::useReplaceInsertVar(){
|
||||
QString dateFormat = ui->lineEdit_DateFormat->text();
|
||||
m_textEdit->setText(dateFormat);
|
||||
}
|
||||
|
||||
|
||||
QString DateVarSet::getFamilyName(int fontsize){
|
||||
return "YaHei"+QString::number(fontsize);
|
||||
}
|
||||
|
||||
TextItemModel DateVarSet::textItemModeL()
|
||||
{
|
||||
return m_generalSettings->viewModel();
|
||||
}
|
||||
|
||||
void DateVarSet::setTextItemModel(const TextItemModel &model)
|
||||
{
|
||||
m_generalSettings->setViewModel(model);
|
||||
}
|
||||
|
||||
void DateVarSet::applyStyleSheet()
|
||||
{
|
||||
QString styleSheet =
|
||||
|
||||
Reference in New Issue
Block a user