PlotterHMI/printviewwindow.cpp
huahaiyan 3ce55cebbd 20240308
1、梳理代码,修改绘制会绘制两次的bug;
2、增加正向旋转功能,线宽设置功能;
3、测试压缩算法,完成;
2024-03-08 16:33:05 +08:00

116 lines
3.2 KiB
C++

#include "printviewwindow.h"
#include "ui_printviewwindow.h"
PrintViewWindow::PrintViewWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::PrintViewWindow)
{
ui->setupUi(this);
setWindowModality(Qt::ApplicationModal);
m_startPoint = 0;
m_printNumber = 0;
m_filePath.clear();
m_addNewFileFlag = 0;
m_view = NULL;
//整数
QIntValidator *Validator = new QIntValidator(this);
ui->lineEdit_start->setValidator(Validator);
ui->lineEdit_number->setValidator(Validator);
m_view = new MyGraphicsView();
connect(m_view,SIGNAL(siMouseMove(QPointF)),this,SLOT(slotShowPoint(QPointF)));
}
PrintViewWindow::~PrintViewWindow()
{
if(m_view != NULL)
{
delete m_view;
m_view = NULL;
}
delete ui;
}
void PrintViewWindow::refreshLanguage()
{
ui->retranslateUi(this);
}
void PrintViewWindow::refreshShow(McFilesInfo &mcFilesInfo,int penWidth,int flag)
{
m_startPoint = 0;
m_printNumber = 1;
m_addNewFileFlag = flag;
if(flag == 1)
{
ui->lineEdit_number->setText("1");
ui->lineEdit_start->setText("0");
}
else
{
ui->lineEdit_number->setText(QString::number(mcFilesInfo.m_printNum));
ui->lineEdit_start->setText(QString::number(mcFilesInfo.m_startPoint));
}
m_filePath = mcFilesInfo.m_filePath;
m_length = (mcFilesInfo.m_fileRect.right() - mcFilesInfo.m_fileRect.left())/M_IDPMM;
int width = (mcFilesInfo.m_fileRect.bottom() - mcFilesInfo.m_fileRect.top())/M_IDPMM;
this->setWindowTitle(m_filePath+"("+QString::number(m_length)+"mm"+" * " + QString::number(width) + "mm)");
m_view->cleanView();
if(mcFilesInfo.m_fileType == TYPE_FILE)
{
mcFilesInfo.m_pic = m_view->getPictureByDat(mcFilesInfo.m_marker,penWidth);
mcFilesInfo.m_drawPath = m_view->getDrawPath();
}
else if(mcFilesInfo.m_fileType == TYPE_IMAGE)
{
mcFilesInfo.m_pic = m_view->getPictureByBmp(mcFilesInfo.m_pixmap);
}
//如果是最大化变为正常大小
if(this->windowState() == Qt::WindowMaximized)
{
this->setWindowState(Qt::WindowMinimized);
this->showNormal();
}
ui->horizontalLayout_view->addWidget(m_view);
QMainWindow::show();
}
void PrintViewWindow::setStartLineText(QString str)
{
ui->lineEdit_start->setText(str);
}
void PrintViewWindow::setNumberLineText(QString str)
{
ui->lineEdit_number->setText(str);
}
void PrintViewWindow::slotShowPoint(QPointF point)
{
ui->lineEdit_x->setText(QString::number((int)point.x())+"mm");
ui->lineEdit_y->setText(QString::number((int)point.y())+"mm");
}
void PrintViewWindow::on_pushButton_draw_clicked()
{
m_startPoint = ui->lineEdit_start->text().toInt();
m_printNumber = ui->lineEdit_number->text().toInt();
if(m_printNumber > 255 || m_printNumber <= 0 || m_startPoint < 0 || m_startPoint >= m_length)
{
QMessageBox::warning(this,
tr("Prompt"),
tr("Unreasonable value input!"),//数值输入不合理
QMessageBox::Ok);
return;
}
emit siAddNewFile(m_addNewFileFlag);
this->close();
}