PlotterHMI/printviewwindow.cpp
2024-02-06 14:19:53 +08:00

110 lines
3.0 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::refreshShow(McFilesInfo mcFilesInfo,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)
{
m_view->creatView(mcFilesInfo.m_marker);
}
else if(mcFilesInfo.m_fileType == TYPE_IMAGE)
{
m_view->creatView(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;
}
siAddNewFile(m_addNewFileFlag);
this->close();
}