#include "MirrorTool.h" mirrortool::mirrortool(QWidget *parent) : ToolInterface(parent), ui(new Ui::mirrortool) { ui->setupUi(this); } mirrortool::~mirrortool() { delete ui; } bool mirrortool::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 mirrortool::ShowParameter() { QString str; if(m_nType == 1) { str = "1"; } if(m_nType == 2) { str = "2"; } if(m_nType == 3) { str = "3"; } return str; } int mirrortool::Execute() { int result = 1; try { if(m_nType == 1) { MirrorImage (m_InImage, &m_OutImage, "column"); } if(m_nType == 2) { MirrorImage (m_InImage, &m_OutImage, "row"); } if(m_nType == 3) { MirrorImage (m_InImage, &m_OutImage, "diagonal"); } } catch(...) { } return result; } void mirrortool::on_radioButton1_clicked() { m_nType = 1; emit updateParameter(ShowParameter()); } void mirrortool::on_radioButton2_clicked() { m_nType = 2; emit updateParameter(ShowParameter()); } void mirrortool::on_radioButton3_clicked() { m_nType = 3; emit updateParameter(ShowParameter()); }