#include "PicEdit.h" #include "ui_picedit.h" #include "SysPara.h" #include #include #include "ui_InputMethod.h" #include "InputMethod.h" #include "Public.h" #include "stdio.h" #include "myinclude.h" #include "dlgdrawinit.h" #include PicEdit::PicEdit(QWidget *parent) : QWidget(parent), ui(new Ui::PicEdit) { ui->setupUi(this); ui->lineEditInputTxt->setMaximumWidth(1); fileDialog = 0; charSpace=0; dlgdraw =0; lineSpace=1; openedFileName = ""; newFileAppending = false;//Qt::Key_Backspace inserPicFile = false; connect(ui->widgetPic,SIGNAL(picWidgetModify()),this,SLOT(enableSaveButton())); connect(ui->widgetPic,SIGNAL(ShowKeybord()),this,SLOT(showKeybord())); connect(ui->widgetPic,SIGNAL(rowColChanged(QString)),ui->label_ROWCOL,SLOT(setText(QString))); connect(ui->widgetPic,SIGNAL(currXYChanged(QString)),ui->label_CURXY,SLOT(setText(QString))); connect(ui->widgetPic,SIGNAL(ChangeFont(int)),this,SLOT(onChangeFont(int))); #ifdef MYSAVEFILEDLG dialogSaveFile =new DialogSaveFile(0); #endif textEdit=new QTextEdit; zkEditEn=0; dialogFileOperation = new DialogFileOperation(0); dialogInsertVari = new DialogInsertVari(0); dialogLineSpace = new DialogLineSpace(0); timer = new QTimer(); connect(timer, SIGNAL(timeout()), ui->widgetPic, SLOT(cursorFlash())); connect(timer, SIGNAL(timeout()), this, SLOT(cursorFlash())); timer->start(500); ui->pushButtonZKEdit->setEnabled (zkEditEn); VarNum=0; isInput =0; ui->scrollArea->setAlignment ( Qt::AlignAbsolute ); ui->radioButtonCharCurrent->setChecked (1); ui->widgetPic->charPara.CharCurrent=1; ui->comboBoxLattice->setCurrentIndex (1); ui->pushButtonSave->setEnabled(false); forcePicWidgetSize = false; ui->widgetPic->charPara.DrawGridEn=true; ui->checkBoxDrawGridEn->setCheckState ((Qt::CheckState)ui->widgetPic->charPara.DrawGridEn ); ui->widgetPic->charPara.DrawEn=false; ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value()); setEnterKey(1); openedFileName = ""; ui->widgetPic->setScale (3); ui->widgetPic->resizeWidget (150,8); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); memset(var,0,sizeof(var)); ui->widgetPic->picSetHome(); ui->labInserMode->setText((ui->widgetPic->charPara.insertMode)? tr("插入模式"):tr("修改模式")); ui->label_Note->setText(tr("编辑现有的多字体文件\r\n请使用修改模式!!!")); ui->widgetPic->charPara.DrawEn=0; ui->widgetPic->drawPara.width = 10; ui->widgetPic->drawPara.height = 8; ui->checkBoxControlChar->hide(); ui->checkBoxBold->hide(); // ui->pushButtonDrawPIC->hide(); } PicEdit::~PicEdit() { delete ui; if(fileDialog) delete fileDialog; if(fileDialog) delete fileDialog; if(dialogInsertVari) delete dialogInsertVari; if(dialogLineSpace) delete dialogLineSpace; if(dlgdraw) delete dlgdraw; #ifdef MYSAVEFILEDLG if(dialogSaveFile) delete dialogSaveFile; if(dialogFileOperation) delete dialogFileOperation; #endif } void PicEdit::setEnterKey(int n) { // ui->pushButtonEnsure->setIcon(QIcon( n?":/icon/sure.png":":/icon/keyenter.png")); // icon().addPixmap(,0,0); // ui->pushButtonEnsure->setText(n?"":"换行"); ///icon/sure.png } void PicEdit::on_pushButtonZKEdit_pressed( ) { //qDebug ()<<"start 1"<widgetPic->charPara.CharWidth<widgetPic->charPara.CharHeight; //qDebug ()<<"11"; if(ui->widgetPic->zkEditEn) { ui->widgetPic->zkEditEn=0; ui->pushButtonNew->setEnabled (true); ui->pushButtonInsertVari->setEnabled (true); ui->pushButtonOpen->setEnabled (true); ui->pushButtonSaveAs->setEnabled (true); ui->pushButtonImport->setEnabled (true); ui->pushButtonSave->setText (tr("保存/打印")); ui->pushButtonSave->setText (tr("保存")); ui->pushButtonZKEdit->setText (tr("字库编辑")); ui->comboBoxLattice->setDisabled (0); ui->spinBoxHeightPoint->setDisabled (0); //ui->spinBoxWidthPoint->setDisabled (0); ui->widgetPic->charPara.CharCurrent=1; //ui->widgetPic->charPara.CurrentEn =1; ui->widgetPic->charPara.DrawEn =0; ui->widgetPic->charPara.LineSpace=1; ui->pushButtonImport->setEnabled(true); ui->widgetPic->initWidget (30,ui->widgetPic->charPara.LineHeight); ui->labelNote2->setText (tr("点击光栅可打开键盘,点击空白处关闭"));// 请选择字体,打开键盘并输入要编辑的字符. // 点击光栅可打开键盘,点击其它空白处可关闭键盘. //qDebug ()<<"22"; emit zkEditEnStatus(tr("信息编辑")); } else { //qDebug ()<<"33"; ui->widgetPic->zkEditNow(); ui->widgetPic->charPara.DrawEn =1; ui->pushButtonNew->setDisabled(true); ui->pushButtonInsertVari->setDisabled (true); ui->pushButtonOpen->setDisabled (true); ui->pushButtonSaveAs->setDisabled (true); ui->pushButtonImport->setDisabled (true); ui->pushButtonSave->setDisabled (true); //ui->comboBoxLattice->setDisabled (true); ui->spinBoxHeightPoint->setDisabled (true); //ui->spinBoxWidthPoint->setDisabled (true); //qDebug ()<<"441"; ui->pushButtonSave->setText (tr("字库保存")); //qDebug ()<<"442"; ui->pushButtonZKEdit->setText (tr("返回信息编辑")); //qDebug ()<<"443"; ui->pushButtonImport->setEnabled(false); ui->labelNote2->setText (tr("请选择字体,打开键盘并输入要编辑的字符"));// 请选择字体,打开键盘并输入要编辑的字符. //qDebug ()<<"44"; // 点击光栅可打开键盘,点击其它空白处可关闭键盘. //emit zkEditEnStatus(tr("字库编辑")); //ui->lineEditInputTxt->setFocus (); ui->widgetPic->zkEditEn=1; } //qDebug ()<<"start 2"<widgetPic->charPara.CharWidth<widgetPic->charPara.CharHeight; } void PicEdit::checkNewFileAppending(){ if(newFileAppending){ ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value()); openedFileName = ""; } newFileAppending = false; } void PicEdit::onSave_File_reject(){ checkNewFileAppending(); } void PicEdit::bindSysPara(SysPara *sysPara){ ui->widgetPic->bindSysPara (sysPara); this->sysPara = sysPara; } bool PicEdit::maybeSave(){ if(!ui->widgetPic->isModified()) return true; QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("图片已经改变,是否保存?")); QPushButton *saveButton = msgBox.addButton(tr("保存"), QMessageBox::ActionRole); QPushButton *cancleSaveButton = msgBox.addButton(tr("放弃保存"), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel); msgBox.exec(); if (msgBox.clickedButton() == saveButton) { newFileAppending = true; on_pushButtonSave_clicked(); return false; } else if (msgBox.clickedButton() == cancleSaveButton) { return true; } else return false; return true; } void PicEdit::on_pushButtonNew_pressed(){ if(maybeSave()) { ui->widgetPic->initWidget(300,ui->spinBoxHeightPoint->value()+1); openedFileName = ""; ui->labelFileName->setText(""); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); VarNum=0; ui->widgetPic->zkEditEn=false; memset(var,0,sizeof(var)); ui->widgetPic->charPara.DrawEn =0; ui->widgetPic->charPara.CharCurrent=1; ui->widgetPic->charPara.CurrentEn =1; ui->lineEditInputTxt->setFocus (); } } void PicEdit::showKeybord( ) { if(!ui->widgetPic->charPara.DrawEn || ui->widgetPic->zkEditEn ) ui->lineEditInputTxt->setFocus (); } void PicEdit::enableSaveButton(){ ui->pushButtonSave->setEnabled(true); if(ui->widgetPic->zkEditEn) ui->comboBoxLattice->setDisabled (1); } void PicEdit::on_pushButtonEnlarge_pressed() { ui->widgetPic->enlargeDisplay(); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); } void PicEdit::on_pushButtonReduce_pressed() { ui->widgetPic->reduceDisplay(); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); } void PicEdit::on_pushButtonEnsure_pressed() { ui->widgetPic->ensureCurrPos(); //qDebug()<<"ENLINE2"; } void PicEdit::on_pushButtonLeft_pressed() { //ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight; ui->widgetPic->currPositionMove(ui->widgetPic->charPara.CharCurrent? (-ui->widgetPic->charPara.CharWidth):(-1),0); } void PicEdit::on_pushButtonRight_pressed() { //ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight; ui->widgetPic->currPositionMove(ui->widgetPic->charPara.CharCurrent?ui->widgetPic->charPara.CharWidth:1,0); } void PicEdit::on_pushButtonUp_pressed() { //ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight; ui->widgetPic->currPositionMove(0,ui->widgetPic->charPara.CharCurrent?-(ui->widgetPic->charPara.LineHeight):-1); //qDebug()<<"TEST2014 UP"; } void PicEdit::on_pushButtonDown_pressed() { //ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight; ui->widgetPic->currPositionMove(0,ui->widgetPic->charPara.CharCurrent?ui->widgetPic->charPara.LineHeight:1); } void PicEdit::on_spinBoxHeightPoint_valueChanged(int height) { ui->widgetPic->resizeWidget (ui->widgetPic->getWidth (),height); //qDebug ()<<"HeightPoint:"<widgetPic->charPara.DrawEn=true; dlgdraw = new dlgDrawInit; //dlgdraw->setWindowTitle(tr("设置图案参数")); dlgdraw->setFocus(); connect(dlgdraw,SIGNAL(dlgDrawOK()),this,SLOT(ondlgDrawOK())); dlgdraw->setWidth(ui->widgetPic->drawPara.width); dlgdraw->setHeight(ui->widgetPic->drawPara.height); dlgdraw->show(); } #endif void PicEdit::ondlgDrawOK() { ui->widgetPic->charPara.DrawEn=true; ui->widgetPic->drawPara.width= dlgdraw->getWidth(); ui->widgetPic->drawPara.height=dlgdraw->getHeight(); if(maybeSave()) { DrawInit(1); } if(dlgdraw) delete dlgdraw; } void PicEdit::on_checkBoxDrawGridEn_clicked( ) { ui->widgetPic->charPara.DrawGridEn=ui->checkBoxDrawGridEn->checkState (); ui->widgetPic->resizeWidget (ui->widgetPic->getWidth (),ui->widgetPic->getHeight ()); ui->widgetPic->update (); } void PicEdit::on_checkBoxControlChar_clicked( ) { ui->widgetPic->charPara.checkBoxControlChar=ui->checkBoxControlChar->checkState (); } void PicEdit::on_pushButtonSaveAs_clicked() { #ifdef MYSAVEFILEDLG disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0); connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool))); dialogSaveFile->setTitleTxt(tr("文件另存为...")); dialogSaveFile->refreshListView(1); dialogSaveFile->setEnterFileName(""); dialogSaveFile->show(); #else if(fileDialog) delete fileDialog; fileDialog = new MyFileDialog(0); disconnect(fileDialog,SIGNAL(accepted()),0,0); connect(fileDialog,SIGNAL(accepted()),this,SLOT(onSaveAS_FIle_select())); fileDialog->showFileDialog(tr("另存为"),QString(DOC_ROOT_DIR), ui->widgetPic->charPara.DrawEn?QString("Picture files (*.jpg)"): QString("Picture files (*.png)") );// *.png )"));// #endif } void PicEdit::onSaveASFile(QString fileName,bool Flag){// use for dialogSaveFile class // filename= fileName ; if( ui->widgetPic->charPara.DrawEn ){ if( !fileName.endsWith(".jpg",Qt::CaseInsensitive) ) fileName += ".jpg"; ui->widgetPic->saveImage1(fileName); //ui->pushButtonSave->setEnabled(false); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); } else { if( !fileName.endsWith(".png",Qt::CaseInsensitive) ) fileName += ".png"; ui->widgetPic->saveImage(fileName); //ui->pushButtonSave->setEnabled(false); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); QString str1 =QFileInfo( fileName).baseName()+".dpn"; if(sysPara){ sysPara->sysFile = QString( PARA_ROOT_DIR+str1); sysPara->savePrintParaToFile(); } printThisFileNow(fileName); } checkNewFileAppending(); } void PicEdit::onSaveAS_FIle_select(){ QStringList files = fileDialog->selectedFiles(); for(int i = 0;i < files.size(); i++) { QString fileName = files[i]; //qDebug()<<"onSaveAS_FIle_select"<widgetPic->charPara.DrawEn ){ if( !fileName.endsWith(".jpg",Qt::CaseInsensitive) ) fileName += ".jpg"; ui->widgetPic->saveImage1(fileName); //ui->pushButtonSave->setEnabled(false); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); } else { if( !fileName.endsWith(".png",Qt::CaseInsensitive) ) fileName += ".png"; ui->widgetPic->saveImage(fileName); //ui->pushButtonSave->setEnabled(false); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); QString str1 =QFileInfo( fileName).baseName()+".dpn"; if(sysPara){ sysPara->sysFile = QString( PARA_ROOT_DIR+str1); sysPara->savePrintParaToFile(); } } printThisFileNow(fileName); } checkNewFileAppending(); } void PicEdit::onFileOpen(QString fileName,bool forcePicWidgetSize) { if(inserPicFile) { if (fileName.endsWith(".png") )ui->widgetPic->insertImage(fileName,false); else ui->widgetPic->insertImage1(fileName,0); // if(openedFileName=="") openedFileName= fileName; } else { if(fileName.endsWith(".png")){ ui->widgetPic->loadImage(fileName,false); openedFileName = fileName; } else if(fileName.endsWith(".jpg")){ ui->widgetPic->insertImage1(fileName,1); VarNum=0; ui->widgetPic->zkEditEn=false; memset(var,0,sizeof(var)); ui->widgetPic->charPara.CurrentEn =1; ui->widgetPic->charPara.DrawEn=1; } ui->widgetPic->setScale (3); ui->labelFileName->setText(tr("文件名:)")+QFileInfo( fileName).fileName()); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); VarNum=0; } } void PicEdit::updateAuthorization(int auth){ // do nothing here zkEditEn= (auth&AUTH_DISPLAY_SYSTEM_SETTING) ||(auth&AUTH_DISPLAY_SYSTEM_MANAGE); ui->pushButtonZKEdit->setEnabled (zkEditEn); } void PicEdit::on_pushButtonOpen_clicked() { disconnect(dialogFileOperation,SIGNAL(openFile(QString,bool)),0,0); connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool))); dialogFileOperation->refreshListView(1); dialogFileOperation->exec(); inserPicFile = false; } void PicEdit::onOpenFIle_select(){ QStringList files = fileDialog->selectedFiles(); for(int i = 0;i < files.size(); i++){ QString fileName = files.value(i); ui->widgetPic->loadImage(fileName,forcePicWidgetSize); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); VarNum=0; } } void PicEdit::on_pushButtonSave_clicked() { if(ui->widgetPic->zkEditEn && zkEditEn ) { ui->widgetPic->zkEditSave(); ui->pushButtonOpen->setDisabled (true); ui->pushButtonSave->setDisabled (true); //ui->pushButtonImport->setEnabled(true); ui->pushButtonZKEdit->setText (tr("返回信息编辑")); ui->comboBoxLattice->setDisabled (0); emit zkEditEnStatus(tr("字库编辑")); return ; } if(!openedFileName.isEmpty()){ //qDebug()<<"on_pushButtonSave_clicked"<widgetPic->charPara.DrawEn) { //if(openedFileName.endsWith("html")) openedFileName =DOC_ROOT_DIR+ QFileInfo(openedFileName).baseName()+".jpg"; ui->widgetPic->saveImage1(openedFileName); } else { //if(openedFileName.endsWith("html")) openedFileName = DOC_ROOT_DIR+QFileInfo(openedFileName).baseName()+".png"; ui->widgetPic->saveImage(openedFileName); // qDebug()<<"on_pushButtonSave_clicked"<pushButtonSave->setEnabled(true); printThisFileNow(openedFileName); } else { #ifdef MYSAVEFILEDLG disconnect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),0,0); connect(dialogSaveFile,SIGNAL(saveFile(QString,bool)),this,SLOT(onSaveASFile(QString,bool))); dialogSaveFile->refreshListView(1); dialogSaveFile->setTitleTxt(tr("文件保存为...")); dialogSaveFile->setEnterFileName(""); dialogSaveFile->show(); #else if(fileDialog) delete fileDialog; fileDialog = new MyFileDialog(0); disconnect(fileDialog,SIGNAL(accepted()),0,0); connect(fileDialog,SIGNAL(rejected()),this,SLOT(onSave_File_reject())); connect(fileDialog,SIGNAL(accepted()),this,SLOT(onSaveAS_FIle_select())); fileDialog->showFileDialog(tr("保存"),tr(DOC_ROOT_DIR), ui->widgetPic->charPara.DrawEn?QString("Picture files (*.jpg)"): QString("Picture files (*.png)") ); #endif } } void PicEdit::on_pushButtonImport_clicked() { //insert pic 插入图片 pushButtonImport inserPicFile =true; disconnect(dialogFileOperation,SIGNAL(openFile(QString,bool)),0,0); connect(dialogFileOperation,SIGNAL(openFile(QString,bool)),this,SLOT(onFileOpen(QString,bool))); dialogFileOperation->refreshListView(1); dialogFileOperation->exec(); } void PicEdit::on_pushButtonEnd_pressed(){ ui->widgetPic->picSetEnd (); } void PicEdit::on_pushButtonHome_pressed(){ ui->widgetPic->picSetHome(); } void PicEdit::keyPressEvent(QKeyEvent *e) { ui->widgetPic->charPara.CharHeight =ui->widgetPic->charPara.LineHeight; switch(e->key()) { case Qt::Key_Return1:on_pushButtonEnsure_pressed(); //qDebug()<<"TEST2014 ENTER"; break; case Qt::Key_Up1: on_pushButtonUp_pressed(); //qDebug()<<"TEST2014 UP2"; break; case Qt::Key_Left1: on_pushButtonLeft_pressed();break; case Qt::Key_Right1:on_pushButtonRight_pressed();break; case Qt::Key_Down1:on_pushButtonDown_pressed();break; case Qt::Key_Enter1: //qDebug()<<"ENLINE"; break; case Qt::Key_Home1:ui->widgetPic->picSetHome(); break; case Qt::Key_End1:ui->widgetPic->picSetEnd (); break; case Qt::Key_Clear1: break; case Qt::Key_Backspace1: ui->widgetPic->picDelOneChar (); break; case Qt::Key_Delete1: ui->widgetPic->picDelNextChar (); break; } //if(e->key())qDebug()<<"TES"<key(); } void PicEdit::on_comboBoxLattice_currentIndexChanged(int index) { //字体选择 int font[]={5,7,9,12,16,16,24,24,32}; int fontWidth[]= {5,5,6,8,8,12,24,24,24 }; ui->widgetPic->charPara.Font=(PFONTNAME)index; ui->widgetPic->charPara.CharHeight =font[index]; ui->widgetPic->charPara.LineHeight = ui->widgetPic->charPara.CharHeight+ui->widgetPic->charPara.LineSpace; ui->widgetPic->charPara.CharWidth =fontWidth[index] ; if( ui->widgetPic->getHeight ()spinBoxHeightPoint->setValue (font[index]); if( ui->widgetPic->currYpos+ ui->widgetPic->charPara.LineHeight > ui->widgetPic->getHeight() ){ ui->widgetPic->resizeWidget( ui->widgetPic->getWidth(),ui->widgetPic->currYpos+ ui->widgetPic->charPara.LineHeight); } ui->widgetPic->update (); ui->lineEditInputTxt->setFocus (); } void PicEdit::on_lineEditInputTxt_textEdited (QString txt) { var[0]=0;var[1]=0; #ifdef VARBOLD ui->widgetPic->charPara.Bold=ui->comboBoxBoldMul->currentIndex(); if(ui->widgetPic->charPara.Bold>2)ui->widgetPic->charPara.Bold=2; #else ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked(); #endif emit ui->widgetPic->inputTxtDot (txt,var); ui->lineEditInputTxt->clear (); // QTime t1;t1.start();// qDebug ()<lineEditInputTxt->setFocus (); } void PicEdit::on_pushButtonDeleteChar_clicked() { ui->widgetPic->picDelOneChar (); } void PicEdit::on_radioButtonCharCurrent_clicked() { ui->widgetPic->charPara.CharCurrent=ui->radioButtonCharCurrent->isChecked (); } void PicEdit::on_radioButtonDotCurrent_clicked() { ui->widgetPic->charPara.CharCurrent=ui->radioButtonCharCurrent->isChecked (); } void PicEdit::on_pushButtonInsertVari_pressed() { if(dialogInsertVari->exec() == QDialog::Accepted ){ int pixelSize =ui->widgetPic->charPara.CharHeight;// ui->comboBoxLattice->currentIndex (); QFont font; font.setFamily(Public::getFontFamily(pixelSize)); font.setPixelSize(pixelSize); font.setWeight(ui->checkBoxBold->isChecked()?QFont::Bold:QFont::Normal); font.setLetterSpacing(QFont::AbsoluteSpacing,ui->widgetPic->charPara.FontGap); // sysPara->para.textEditCharSpace QFontMetrics fontMetrics(font); ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked(); int width = (fontMetrics.width("0123456789"))/10 ; int height = fontMetrics.ascent () + fontMetrics.descent();//pixelSize; int digitalNum; int varType; unsigned char splitMode; dialogInsertVari->getValue(&varType,&digitalNum,&splitMode); QString txt; //================ int val = 0; QTime t = QTime::currentTime(); QDate d = QDate::currentDate(); switch(varType){ case 0:val = d.year(); digitalNum=digitalNum>2?4:2; break; case 1:val = d.month();digitalNum=2;break; case 2:val = d.day();digitalNum=2;break; //case 3:val = d.dayOfWeek();digitalNum=2;break; //weekNumber case 3:val = d.weekNumber();digitalNum=2;break; case 4:val = t.hour(); digitalNum=2;break; case 5:val = t.minute();digitalNum=2;break; case 6:val = t.second();digitalNum=2;break; case 7:val = QString::number(sysPara->status.calandar_and_dat.cnt1CurrValue,16).toInt(); break; case 8:val = QString::number(sysPara->status.calandar_and_dat.cnt2CurrValue,16).toInt();break; case 13:val = QString::number(sysPara->status.Status_Counter3.cnt3CurrValue,16).toInt();break; default:val=0; } // qDebug()<widgetPic->charPara.FontGap;//4 //sysPara #ifdef VARBOLD ui->widgetPic->charPara.Bold=ui->comboBoxBoldMul->currentIndex(); if(ui->widgetPic->charPara.Bold>2)ui->widgetPic->charPara.Bold=2; #else ui->widgetPic->charPara.Bold = ui->checkBoxBold->isChecked(); #endif if(digitalNum) ui->widgetPic->inputTxtDot (txt,var); } ui->lineEditInputTxt->setFocus (); } void PicEdit::ChinaProview(QString txt) { int mCol = (int)textEdit->document()->size().width(); bool MaxCol4000; if(!sysPara->status.flagOfNo67FPGA && sysPara->status.FPGAVersionType == 0 && sysPara->status.FPGAChipType != 1) MaxCol4000 = false; else MaxCol4000 = true; if(mCol > (MaxCol4000?MAX_PRINT_COL_NUM_Normal:MAX_PRINT_COL_NUM_Wide)) mCol= MaxCol4000?MAX_PRINT_COL_NUM_Normal:MAX_PRINT_COL_NUM_Wide; int maxPicHeight = MAX_PRINT_ROW_NUM + 12; //qDebug ()<document()->drawContents (&painter, image.rect()); /*将text写到pic*/ //image.save("printImage.jpg"); unsigned char mDat[mCol*maxPicHeight]; memset(mDat,0,sizeof(mDat)); int firstRow = maxPicHeight; /*--------------------------------------------------------------------------*/ for(int j = 0; j < maxPicHeight; j++){ //计算首行位置 for(int i = 0; i < mCol; i++){ QRgb rgb = image.pixel(i,j); if(rgb&0xff000000){ firstRow = j; break; } } if(firstRow != maxPicHeight) break; } /*--------------------------------------------------------------------------*/ int lastRow = firstRow + MAX_PRINT_ROW_NUM; lastRow = (lastRow>maxPicHeight)?maxPicHeight:lastRow; for(int j = 0; j < lastRow - firstRow; j++){ for(int i = 0; i < mCol; i++){ QRgb rgb = image.pixel(i,j + firstRow); if((rgb&0x80000000)){ //判断alpha if((rgb & 0xffffff) == 0xff0000){ mDat[ i* j + firstRow]=0; } } } } } void PicEdit::on_pushButtonCharSpace_pressed () { //QScrollBar mScrollBar; dialogLineSpace->setValue (ui->widgetPic->charPara.LineSpace,ui->widgetPic->charPara.FontGap); if(dialogLineSpace->exec() == QDialog::Accepted ){ dialogLineSpace->getValue (&lineSpace,&charSpace); if(charSpace<1)charSpace=1; ui->widgetPic->charPara.FontGap=charSpace; ui->widgetPic->charPara.LineSpace= lineSpace; ui->widgetPic->charPara.LineHeight = ui->widgetPic->charPara.CharHeight +ui->widgetPic->charPara.LineSpace; } } void PicEdit::DrawInit(bool mode) { if( mode) { ui->widgetPic->initWidget(ui->widgetPic->drawPara.width,ui->widgetPic->drawPara.height); openedFileName = ""; ui->labelFileName->setText(""); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); VarNum=0; ui->widgetPic->zkEditEn=false; memset(var,0,sizeof(var)); ui->widgetPic->charPara.CurrentEn =1; //ui->spinBoxWidth->show(); //ui->labWidth->show(); //ui->pushButtonInsertVari->hide(); ui->widgetPic->charPara.DrawEn=1; } else { ui->pushButtonInsertVari->show(); ui->widgetPic->charPara.DrawEn=0; emit on_pushButtonNew_pressed(); } } void PicEdit::printThisFileNow(QString fileName) { if( ui->widgetPic->charPara.DrawEn) { DrawInit(0); return ; } QMessageBox msgBox(QMessageBox::Information,tr("提示"),tr("是否立即喷印当前的文件?")); QPushButton *saveButton = msgBox.addButton(tr("是"), QMessageBox::ActionRole); QPushButton *cancleSaveButton = msgBox.addButton(tr("否"), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel); msgBox.exec(); if (msgBox.clickedButton() == saveButton) { emit openCurrentFile(fileName,false); emit setMainTabNow(0); } } void PicEdit::EditCurrFile(QString fileName) { ui->widgetPic->loadImage(fileName,forcePicWidgetSize); openedFileName = fileName; ui->labelFileName->setText(tr("文件名:")+QFileInfo( fileName).fileName()); ui->labelScaleLeval->setText(tr("放大倍数:%1").arg(ui->widgetPic->getScaleValue())); ui->pushButtonSave->setEnabled(true); VarNum=0; } void PicEdit::onChangeFont(int n) {// //char font[]={5,7,9,12,16,24,24,32}; int i=0; if(n>24) i=6; else if(n>16) i=5; else if(n>12) i=4; else if(n>9) i=3; else if(n>7) i=2; else if(n>5) i=1; else i=0; ui->comboBoxLattice->setCurrentIndex(i); //qDebug()<widgetPic->charPara.insertMode =!ui->widgetPic->charPara.insertMode; ui->labInserMode->setText((ui->widgetPic->charPara.insertMode)?tr("插入模式"):tr("修改模式")); } void PicEdit::cursorFlash() { static int n=0; static int m=0; // static bool r_DrawEn=0; if(sysPara==NULL) return; if(sysPara->para.EditMode==TXTFILE){ ui->widgetPic->pEditMode=0; return; } else if(sysPara->para.EditMode==PICFILE) ui->widgetPic->pEditMode=1; // r_DrawEn = char if(isActiveWindow()){ if(n<31)n++;else n=0; if(n==10){ ui->label_Note->setText(tr("按回车键(Enter)可增加新行. 选择字体,光栅会自动调整")); ui->labelNote2->setText((m%2)?tr("选择[字体]可改变光标大小."):tr("选择[绘图]方式,可以绘制任意图形")); // qDebug()<<"n:"<label_Note->setText(tr("光标不匹配时,不能输入或删除.")); ui->labelNote2->setText((m%2)?tr("点击空白处可关闭键盘."):tr("通过[字库编辑]功能,用户可以自定义新字符")); m++;m=m&0xff; // qDebug()<<"n:"<label_Note->setText(tr("选择[文本模式]可切换到主界面编辑方式.")); ui->labelNote2->setText((m%2)?tr("点击光栅可打开键盘,点击空白处关闭键盘"):tr("使用[字库编辑]功能,用户可自己修改字形")); // q } //qDebug()<<"n:"<