#include "RotateTool.h" rotatetool::rotatetool(QWidget *parent) : ToolInterface(parent), ui(new Ui::rotatetool) { ui->setupUi(this); } rotatetool::~rotatetool() { delete ui; } bool rotatetool::Serialized(QDataStream& ar, bool bIsOut) { int paranum;//参数数量 if (bIsOut)//保存参数流程 { paranum = 1; ar << paranum;//先保存参数数量 ar << (int)1 << m_nType; } else//加载参数流程,参数加载顺序一定要跟保存顺序一致 { int nCurrentIndex = 0; int para; ar >> paranum;//读取参数数量 for (int i = 0; i < paranum; i++) { ar >> para; switch (para) { case 1: ar >> m_nType; break; default: { qWarning() << "Serialized(In) Error"; return false; } break; } } { // ui->lineEdit_width->setText(QString::number(m_nWidth)); // ui->lineEdit_height->setText(QString::number(m_nHeight)); emit updateParameter(ShowParameter()); } } return true; } QString rotatetool::ShowParameter() { QString str; if(m_nType == 1) { str = "90"; } if(m_nType == 2) { str = "180"; } if(m_nType == 3) { str = "270"; } return str; } int rotatetool::Execute() { int result = 1; try { if(m_nType == 1) { RotateImage (m_InImage, &m_OutImage, 90, "constant"); } if(m_nType == 2) { RotateImage (m_InImage, &m_OutImage, 180, "constant"); } if(m_nType == 3) { RotateImage (m_InImage, &m_OutImage, 270, "constant"); } } catch(...) { } return result; } void rotatetool::on_radioButton90_clicked() { m_nType = 1; emit updateParameter(ShowParameter()); } void rotatetool::on_radioButton180_clicked() { m_nType = 2; emit updateParameter(ShowParameter()); } void rotatetool::on_radioButton270_clicked() { m_nType = 3; emit updateParameter(ShowParameter()); }