#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); }