PlotterHMI/printinfodialog.cpp
huahaiyan 80684daf9b 20240322
1、完善dxf解析
2024-03-22 15:58:53 +08:00

120 lines
4.0 KiB
C++

#include "printinfodialog.h"
#include "ui_printinfodialog.h"
PrintInfoDialog::PrintInfoDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::PrintInfoDialog)
{
ui->setupUi(this);
setWindowModality(Qt::ApplicationModal);
setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);
//QListView
ui->listView_blockList->setDragEnabled(false); //控件不允许拖动
// 设置listView为不可编辑状态
ui->listView_blockList->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_listViewModel = new QStringListModel(ui->listView_blockList);
ui->listView_blockList->setModel(m_listViewModel);
m_curBlockRow = -1;
m_preView = new MyGraphicsView();
ui->horizontalLayout->addWidget(m_preView);
}
PrintInfoDialog::~PrintInfoDialog()
{
delete ui;
}
void PrintInfoDialog::refreshLanguage()
{
ui->retranslateUi(this);
}
void PrintInfoDialog::on_listView_blockList_clicked(const QModelIndex &index)
{
QString str = "0 - ";
int row = index.row();
QString str1;
if(m_curBlockRow != row)
{
int x = row * PIXMAPWIDTH;
QPoint p;
p.setX(x);
p.setY(0);
m_preView->reflushBlockView(p);
m_curBlockRow = row;
m_curFilesInfo.m_selectBlockNum = row+1;
str = QString::number((m_curFilesInfo.m_selectBlockNum-1)*BLOCK_MM)+" - ";
if(row == m_listViewModel->rowCount() - 1)
{
str1 = QString::number((int)((m_curFilesInfo.m_fileRect.right() - m_curFilesInfo.m_fileRect.left())/MMPIXELY));
}
else
{
str1 = QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM);
}
}
else
{
QPoint p;
p.setX(-1);
p.setY(-1);
m_preView->reflushBlockView(p);
ui->listView_blockList->clearSelection();
m_curBlockRow = -1;
m_curFilesInfo.m_selectBlockNum = 0;
str1 = QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM);
}
ui->label_selectBlockNumVal->setText(QString::number(m_curFilesInfo.m_selectBlockNum)+"("+str+str1+"mm)");
}
void PrintInfoDialog::reflushFileInfo()
{
//刷新块数列表和文件信息
QStringList strList;
strList.clear();
int totalBlocks = m_curFilesInfo.m_totalBlocks;
for(int i = 1; i <= totalBlocks; i++)
{
QString str = QString::number(i) + " " + tr("piece");//块
strList.append(str);
}
m_listViewModel->setStringList(strList);
ui->label_fileNameVal->setText(m_curFilesInfo.m_fileName);
int length = (m_curFilesInfo.m_fileRect.right() - m_curFilesInfo.m_fileRect.left())/MMPIXELY;
int height = (m_curFilesInfo.m_fileRect.bottom() - m_curFilesInfo.m_fileRect.top())/MMPIXELY;
QString WH = QString::number(length) + "x" + QString::number(height)+ "mm";
ui->label_drawWHVal->setText(WH);
ui->label_printNumVal->setText(QString::number(m_curFilesInfo.m_printNum));
ui->label_startPointVal->setText(QString::number(m_curFilesInfo.m_startPoint)+"mm");
ui->label_fileBlockNumVal->setText(QString::number(m_curFilesInfo.m_totalBlocks));
ui->label_currentBlockVal->setText(QString::number(m_curFilesInfo.m_curPrintBlock)+"("+QString::number(m_curFilesInfo.m_curPrintBlock*BLOCK_MM)+"mm)");
ui->label_printedBlockNumVal->setText(QString::number(m_curFilesInfo.m_printedBlockNum)+"("+QString::number(m_curFilesInfo.m_printedBlockNum*BLOCK_MM)+"mm)");
int leaveLength = length - m_curFilesInfo.m_printedBlockNum*BLOCK_MM;
ui->label_leaveBlockNumVal->setText(QString::number(m_curFilesInfo.m_leaveBlockNum)+"("+QString::number(leaveLength)+"mm)");
ui->label_selectBlockNumVal->setText(QString::number(m_curFilesInfo.m_selectBlockNum)+"("+"0 - "+QString::number(m_curFilesInfo.m_selectBlockNum*BLOCK_MM)+"mm)");
}
void PrintInfoDialog::setFilesInfo(McFilesInfo info)
{
m_curFilesInfo = info;
m_preView->cleanView();
m_preView->swithViewByPic(m_curFilesInfo.m_showPic);//刷新显示
reflushFileInfo();
QDialog::exec();
}
void PrintInfoDialog::on_pushButton_back_clicked()
{
done(0);
}