2712 lines
123 KiB
C++
2712 lines
123 KiB
C++
#include "frmLink.h"
|
|
#include <QMessageBox>
|
|
#include <QTableWidgetItem>
|
|
#include <QComboBox>
|
|
#include <QDesktopWidget>
|
|
#include "datavar.h"
|
|
using namespace std;
|
|
|
|
frmLink::frmLink(QWidget* parent)
|
|
: QDialog(parent)
|
|
{
|
|
ui.setupUi(this);
|
|
this->setWindowIcon(QIcon(":/res/ico/link.png"));
|
|
//FramelessWindowHint属性设置窗口去除边框
|
|
//WindowMinimizeButtonHint 属性设置在窗口最小化时,点击任务栏窗口可以显示出原窗口
|
|
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
|
|
//设置窗体在屏幕中间位置
|
|
QDesktopWidget* desktop = QApplication::desktop();
|
|
move((desktop->width() - this->width()) / 2, (desktop->height() - this->height()) / 2);
|
|
//设置窗口背景透明
|
|
setAttribute(Qt::WA_TranslucentBackground);
|
|
//初始化标题栏
|
|
initTitleBar();
|
|
form_load();
|
|
slot_CreateList();
|
|
connect(ui.tableWidget, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(slot_DoubleClicked(int, int)));
|
|
}
|
|
|
|
frmLink::~frmLink()
|
|
{
|
|
if (this != nullptr)
|
|
{
|
|
this->deleteLater();
|
|
}
|
|
}
|
|
|
|
void frmLink::initTitleBar()
|
|
{
|
|
MyTitleBar* m_titleBar = new MyTitleBar(this);
|
|
m_titleBar->move(0, 0);
|
|
connect(m_titleBar, SIGNAL(signalButtonCloseClicked()), this, SLOT(onButtonCloseClicked()));
|
|
m_titleBar->setBackgroundColor(3, 110, 95);
|
|
m_titleBar->setStyleSheet("background-color: rgba(0, 0, 0, 0);color:white;font-size:16px");
|
|
m_titleBar->setTitleIcon(":/res/ico/link.png");
|
|
m_titleBar->setTitleContent("数据链接");
|
|
m_titleBar->setButtonType(ONLY_CLOSE_BUTTON);
|
|
m_titleBar->setTitleWidth(this->width());
|
|
}
|
|
|
|
void frmLink::paintEvent(QPaintEvent* event)
|
|
{
|
|
//设置背景色
|
|
QPainter painter(this);
|
|
QPainterPath pathBack;
|
|
pathBack.setFillRule(Qt::WindingFill);
|
|
pathBack.addRoundedRect(QRect(0, 0, this->width(), this->height()), 3, 3);
|
|
painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
|
|
painter.fillPath(pathBack, QBrush(QColor("#bcc2bc")));
|
|
return QWidget::paintEvent(event);
|
|
}
|
|
|
|
void frmLink::form_load()
|
|
{
|
|
//设置表格列宽
|
|
ui.tableWidget->setColumnWidth(0, 50);
|
|
ui.tableWidget->setColumnWidth(1, 203);
|
|
ui.tableWidget->setColumnWidth(2, 300);
|
|
ui.tableWidget->setColumnWidth(3, 232);
|
|
//隐藏水平header
|
|
ui.tableWidget->verticalHeader()->setVisible(false);
|
|
//设置整行选中
|
|
ui.tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
ui.tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
|
|
ui.tableWidget->horizontalHeader()->setDisabled(true);
|
|
//添加List
|
|
ItemModel = new QStandardItemModel(this);
|
|
ui.listProcess->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止编辑
|
|
}
|
|
|
|
void frmLink::onButtonCloseClicked()
|
|
{
|
|
//信号与槽解除连接
|
|
disconnect(ui.listProcess, SIGNAL(clicked(QModelIndex)), this, SLOT(slot_ListClick(QModelIndex)));
|
|
disconnect(ui.tableWidget, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(slot_DoubleClicked(int, int)));
|
|
this->close();
|
|
this->deleteLater();
|
|
}
|
|
|
|
void frmLink::slot_CreateList()
|
|
{
|
|
//获取子控件
|
|
objTabName = dataVar::fProItemTab->findChild<QTabWidget*>("ProItemTabWidget");
|
|
objTreeName = dataVar::fProItemTab->findChild<QTreeWidget*>("ProItemTreeWidget");
|
|
int flow = objTabName->currentIndex(); //索引号
|
|
flow_index = 0;
|
|
QTreeWidgetItemIterator it(objTreeName); //遍历treeWidget
|
|
QList<QTreeWidgetItem*> pro_keys = dataVar::fProItemTab->m_pro_value.uniqueKeys();
|
|
for (int i = 0; i < (*it)->childCount(); i++)
|
|
{
|
|
QTreeWidgetItem* key = pro_keys[i];
|
|
if ((*it)->child(flow) == pro_keys[i])
|
|
{
|
|
flow_index = dataVar::fProItemTab->m_pro_value.values(key).at(0);
|
|
}
|
|
}
|
|
QVector<QString> FlowProItemList;
|
|
FlowProItemList.reserve(100);
|
|
FlowProItemList.clear();
|
|
int item_id;
|
|
QString flowPageName = objTabName->tabText(objTabName->currentIndex());
|
|
QMap<QString, QtDragListWidget*>::iterator iter = dataVar::FlowProMap.begin();
|
|
while (iter != dataVar::FlowProMap.end())
|
|
{
|
|
if (iter.key() == flowPageName)
|
|
{
|
|
TempDragListWidget = iter.value();
|
|
FlowProItemList = TempDragListWidget->GetAllItemList();
|
|
item_id = TempDragListWidget->GetCurrentItemId() - 1;
|
|
break;
|
|
}
|
|
iter++;
|
|
}
|
|
//流程所在的索引位置
|
|
tool_name_buf = FlowProItemList[item_id];
|
|
//添加List
|
|
ItemModel->removeRows(0, ItemModel->rowCount());
|
|
//添加全局变量
|
|
QStandardItem* item = new QStandardItem("全局变量");
|
|
QPixmap pixmap = GetIcon(GetIconName("全局变量"));
|
|
item->setIcon(pixmap);
|
|
ItemModel->appendRow(item);
|
|
for (int i = 0; i < item_id; i++)
|
|
{
|
|
//添加流程
|
|
QStandardItem* item = new QStandardItem(FlowProItemList[i]);
|
|
QPixmap pixmap = GetIcon(GetIconName(FlowProItemList[i]));
|
|
item->setIcon(pixmap);
|
|
ItemModel->appendRow(item);
|
|
}
|
|
ui.listProcess->setModel(ItemModel);
|
|
connect(ui.listProcess, SIGNAL(clicked(QModelIndex)), this, SLOT(slot_ListClick(QModelIndex)));
|
|
}
|
|
|
|
void frmLink::slot_ListClick(QModelIndex index)
|
|
{
|
|
index_process_modify = index.row();
|
|
tool_name = index.data().toString();
|
|
//提取不含数字字符串
|
|
int str_count = 0;
|
|
for (int k = 0; k < tool_name.length(); k++)
|
|
{
|
|
if (!(tool_name[k] > '0' && tool_name[k] < '9'))
|
|
{
|
|
++str_count;
|
|
}
|
|
}
|
|
QString str_name_buf = tool_name.mid(0, str_count);
|
|
QStringList toolNames;
|
|
toolNames.reserve(100);
|
|
toolNames.clear();
|
|
toolNames << "全局变量" << "获取图像" << "图像显示" << "导出图像" << "预处理" << "图像拼接" << "图像修复" << "图像细化" << "图像翻转" << "图像旋转" << "透视变换" << "裁切图像" << "创建ROI" << "条形码识别" << "斑点分析" << "二维码识别"
|
|
<< "字符识别" << "分类器" << "颜色识别" << "亮度检测" << "图像清晰度" << "轮廓特征选择" << "N点标定" << "畸变标定" << "测量标定" << "灰度匹配" << "形状匹配" << "目标跟踪" << "线性计算" << "寻找圆" << "寻找直线" << "拟合圆" << "拟合椭圆" << "拟合直线" << "获取边界点"
|
|
<< "线圆交点" << "点+点" << "点+线" << "线线交点" << "查找圆缺角" << "边缘宽度测量" << "拟合平面" << "扩展库" << "跳转语句" << "判断语句" << "结束语句" << "脚本编辑" << "TCP/IP服务器" << "TCP/IP客户端" << "PLC通信" << "串口通信" << "通用I/O" << "延时" << "导出CSV";
|
|
//清空Table
|
|
int rowNum = ui.tableWidget->rowCount();
|
|
for (int i = rowNum - 1; i >= 0; i--)
|
|
{
|
|
ui.tableWidget->removeRow(i);
|
|
}
|
|
switch (toolNames.indexOf(str_name_buf)) {
|
|
#pragma region 全局变量
|
|
case 0:
|
|
//全局变量
|
|
objTableName = dataVar::fGlobalVariable->findChild<QTableWidget*>("tableWidget"); //获取子控件
|
|
row_count = objTableName->rowCount();
|
|
ui.tableWidget->setRowCount(row_count); //设置行数
|
|
for (int k = 0; k < row_count; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
item_variable_name = new QTableWidgetItem(objTableName->item(k, 1)->text());
|
|
item_variable_value = new QTableWidgetItem(objTableName->item(k, 2)->text());
|
|
if (objTableName->item(k, 0)->text() == "Int")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("Int");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "Double")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "QString")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "Bool")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "QPoint")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("QPoint");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "QPointF")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("QPointF");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "cv::Point")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("cv::Point");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "cv::Point2f")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "cv::Point3f")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("cv::Point3f");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "cv::Point3d")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("cv::Point3d");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "Float[]")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("Float[]");
|
|
}
|
|
else if (objTableName->item(k, 0)->text() == "Double[]")
|
|
{
|
|
item_variable_type = new QTableWidgetItem("Double[]");
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 图像处理
|
|
case 1:
|
|
//获取图像
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 2:
|
|
//图像显示
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputViewImage");
|
|
item_variable_type = new QTableWidgetItem("QImage");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
//导出图像
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
//预处理
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 5:
|
|
//图像拼接
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 6:
|
|
//图像修复
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 7:
|
|
//图像细化
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 8:
|
|
//图像翻转
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 9:
|
|
//图像旋转
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 10:
|
|
//透视变换
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 11:
|
|
//裁切图像
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 12:
|
|
//创建ROI
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".矩形");
|
|
item_variable_value = new QTableWidgetItem("PublicImageProcess.CvRect");
|
|
item_variable_type = new QTableWidgetItem("cv::Rect");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".旋转矩形");
|
|
item_variable_value = new QTableWidgetItem("PublicImageProcess.CvRotatedRect");
|
|
item_variable_type = new QTableWidgetItem("cv::RotatedRect");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 检测识别
|
|
case 13:
|
|
//条形码识别
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".条形码");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Code");
|
|
item_variable_type = new QTableWidgetItem("vector<QString>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 14:
|
|
//斑点分析
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".斑点个数");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Quantity");
|
|
item_variable_type = new QTableWidgetItem("Int");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 15:
|
|
//二维码识别
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".二维码");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Code");
|
|
item_variable_type = new QTableWidgetItem("vector<QString>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 16:
|
|
//字符识别
|
|
|
|
break;
|
|
case 17:
|
|
//分类器
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".类别");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Category");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 18:
|
|
//颜色识别
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".相似度");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Score");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 19:
|
|
//亮度检测
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".亮度");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Brightness");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 20:
|
|
//图像清晰度
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".清晰度");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Clarity");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 21:
|
|
//轮廓特征选择
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(5); //设置行数
|
|
for (int k = 0; k < 5; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".轮廓");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Contours");
|
|
item_variable_type = new QTableWidgetItem("vector<vector<cv::Point>>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".面积");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.Areas");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".重心");
|
|
item_variable_value = new QTableWidgetItem("PublicDetect.CenterPoints");
|
|
item_variable_type = new QTableWidgetItem("vector<cv::Point2f>");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 标定工具
|
|
case 22:
|
|
//N点标定
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(9); //设置行数
|
|
for (int k = 0; k < 9; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".N点标定参数");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.EstimateAffine");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".旋转中心");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.RotateCenter");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".像素当量X");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.PixelEquivalentX");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".像素当量Y");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.PixelEquivalentY");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 5:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".基准点1");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.DatumPoint1");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 6:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".基准点2");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.DatumPoint2");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 7:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".基准角度");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.DatumAngle");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 8:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 23:
|
|
//畸变标定
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".内参K");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.CameraMatrix");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".畸变系数");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.DistCoeffs");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 24:
|
|
//测量标定
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".像素当量X");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.PixelEquivalentX");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".像素当量Y");
|
|
item_variable_value = new QTableWidgetItem("PublicCalib.PixelEquivalentY");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 对位工具
|
|
case 25:
|
|
//灰度匹配
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(6); //设置行数
|
|
for (int k = 0; k < 6; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.Center");
|
|
item_variable_type = new QTableWidgetItem("vector<cv::Point2f>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配角度");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.Angle");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配分数");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.OutScore");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配基准中心");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.DatumCenter");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 5:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 26:
|
|
//形状匹配
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(6); //设置行数
|
|
for (int k = 0; k < 6; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.Center");
|
|
item_variable_type = new QTableWidgetItem("vector<cv::Point2f>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配角度");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.Angle");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配分数");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.OutScore");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".匹配基准中心");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.DatumCenter");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 5:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 27:
|
|
//目标跟踪
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".旋转矩形");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.CvRotatedRect");
|
|
item_variable_type = new QTableWidgetItem("cv::RotatedRect");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 28:
|
|
//线性计算
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".移动量X");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.MovingDistanceX");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".移动量Y");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.MovingDistanceY");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".世界坐标点");
|
|
item_variable_value = new QTableWidgetItem("PublicTPosition.WorldCoordinatePoint");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 几何工具/测量
|
|
case 29:
|
|
//寻找圆
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Center");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".半径");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Radius");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 30:
|
|
//寻找直线
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".斜率");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.k");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".截距");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.b");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 31:
|
|
//拟合圆
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Center");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".半径");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Radius");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 32:
|
|
//拟合椭圆
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(6); //设置行数
|
|
for (int k = 0; k < 6; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Center");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".角度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Angle");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".长轴长度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Length1");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".短轴长度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Length2");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 5:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 33:
|
|
//拟合直线
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".斜率");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.k");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".截距");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.b");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 34:
|
|
//获取边界点
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".点集");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.BorderPoints");
|
|
item_variable_type = new QTableWidgetItem("vector<cv::Point2f>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 35:
|
|
//线圆交点
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".交点坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Intersections");
|
|
item_variable_type = new QTableWidgetItem("vector<cv::Point2f>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 36:
|
|
//点+点
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(5); //设置行数
|
|
for (int k = 0; k < 5; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".中心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Center");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".角度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Angle");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".距离");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Distance");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 37:
|
|
//点+线
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".垂足坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Pedal");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".距离");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Distance");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 38:
|
|
//线线交点
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(4); //设置行数
|
|
for (int k = 0; k < 4; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".交点坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Intersection");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".夹角");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Angle");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 39:
|
|
//查找圆缺角
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(5); //设置行数
|
|
for (int k = 0; k < 5; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".圆心坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Center");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".垂足坐标");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Pedal");
|
|
item_variable_type = new QTableWidgetItem("cv::Point2f");
|
|
break;
|
|
case 3:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".角度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Angle");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 4:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 40:
|
|
//边缘宽度测量
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".边缘宽度");
|
|
item_variable_value = new QTableWidgetItem("PublicGeometry.Distance");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 三维检测
|
|
case 41:
|
|
//拟合平面
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".平面参数");
|
|
item_variable_value = new QTableWidgetItem("PublicThreeD.Flatness");
|
|
item_variable_type = new QTableWidgetItem("vector<Double>");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".点到平面距离");
|
|
item_variable_value = new QTableWidgetItem("PublicThreeD.Distance");
|
|
item_variable_type = new QTableWidgetItem("Double");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 逻辑工具
|
|
case 42:
|
|
//扩展库
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".图像");
|
|
item_variable_value = new QTableWidgetItem("PublicImage.OutputImage");
|
|
item_variable_type = new QTableWidgetItem("cv::Mat");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 43:
|
|
//跳转语句
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 44:
|
|
//判断语句
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 45:
|
|
//结束语句
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 46:
|
|
//脚本编辑
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 通讯工具
|
|
case 47:
|
|
//TCP/IP服务器
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".接收数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.InputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".发送数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.OutputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 48:
|
|
//TCP/IP客户端
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".接收数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.InputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".发送数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.OutputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 49:
|
|
//PLC通信
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".寄存器读取数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.RegisterReadData");
|
|
item_variable_type = new QTableWidgetItem("QVector<int>");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".寄存器写入数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.RegisterWriteData");
|
|
item_variable_type = new QTableWidgetItem("QVector<int>");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 50:
|
|
//串口通信
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(3); //设置行数
|
|
for (int k = 0; k < 3; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".接收数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.InputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".发送数据");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.OutputData");
|
|
item_variable_type = new QTableWidgetItem("QString");
|
|
break;
|
|
case 2:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 51:
|
|
//通用I/O
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(2); //设置行数
|
|
for (int k = 0; k < 2; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".输入点");
|
|
item_variable_value = new QTableWidgetItem("PublicCommunication.InPutIoX");
|
|
item_variable_type = new QTableWidgetItem("QVector<Bool>");
|
|
break;
|
|
case 1:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
|
|
#pragma region 系统工具
|
|
case 52:
|
|
//延时
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 53:
|
|
//导出CSV
|
|
for (int j = 0; j < QConfig::ToolBase[flow_index]->m_Tools.size(); j++)
|
|
{
|
|
QString toolName;
|
|
toolName = QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName;
|
|
if (tool_name == toolName)
|
|
{
|
|
ui.tableWidget->setRowCount(1); //设置行数
|
|
for (int k = 0; k < 1; k++)
|
|
{
|
|
item_number = new QTableWidgetItem(QString::number(k + 1));
|
|
item_number->setFlags(item_number->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_number->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 0, item_number);
|
|
switch (k) {
|
|
case 0:
|
|
item_variable_name = new QTableWidgetItem(QConfig::ToolBase[flow_index]->m_Tools[j].PublicToolName + ".状态");
|
|
item_variable_value = new QTableWidgetItem("PublicResult.State");
|
|
item_variable_type = new QTableWidgetItem("Bool");
|
|
break;
|
|
}
|
|
item_variable_name->setFlags(item_variable_name->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_name->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 1, item_variable_name);
|
|
item_variable_value->setFlags(item_variable_value->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_value->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 2, item_variable_value);
|
|
item_variable_type->setFlags(item_variable_type->flags() & (~Qt::ItemIsEditable)); //设置列不可编辑
|
|
item_variable_type->setTextAlignment(Qt::AlignCenter);
|
|
ui.tableWidget->setItem(k, 3, item_variable_type);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
#pragma endregion
|
|
}
|
|
}
|
|
|
|
void frmLink::slot_DoubleClicked(int row, int column)
|
|
{
|
|
dataVar::str_link = ui.tableWidget->item(row, 1)->text();
|
|
QConfig::ToolBase[flow_index]->RunToolLink(tool_name_buf, dataVar::int_link, dataVar::str_link);
|
|
onButtonCloseClicked();
|
|
}
|
|
|
|
// 获取图标
|
|
QPixmap frmLink::GetIcon(QString fileName)
|
|
{
|
|
return IconHelper::Instance()->getPixmap(fileName);
|
|
}
|
|
|
|
// 获取图标路径
|
|
QString frmLink::GetIconName(QString Name)
|
|
{
|
|
QString IconName;
|
|
if (Name.contains("全局变量")) IconName = ":/res/ico/var.ico";
|
|
if (Name.contains("获取图像")) IconName = ":/res/ico/image_source.png";
|
|
if (Name.contains("图像显示")) IconName = ":/res/ico/image_view.ico";
|
|
if (Name.contains("导出图像")) IconName = ":/res/ico/export_image.png";
|
|
if (Name.contains("斑点分析")) IconName = ":/res/ico/blob.png";
|
|
if (Name.contains("预处理")) IconName = ":/res/ico/morphology.png";
|
|
if (Name.contains("图像拼接")) IconName = ":/res/ico/image_splice.png";
|
|
if (Name.contains("图像修复")) IconName = ":/res/ico/repair.png";
|
|
if (Name.contains("图像细化")) IconName = ":/res/ico/skeleton.png";
|
|
if (Name.contains("图像翻转")) IconName = ":/res/ico/flip.png";
|
|
if (Name.contains("图像旋转")) IconName = ":/res/ico/rotate.png";
|
|
if (Name.contains("透视变换")) IconName = ":/res/ico/perspective.png";
|
|
if (Name.contains("裁切图像")) IconName = ":/res/ico/crop.png";
|
|
if (Name.contains("创建ROI")) IconName = ":/res/ico/roi.png";
|
|
if (Name.contains("条形码识别")) IconName = ":/res/ico/barcode.png";
|
|
if (Name.contains("二维码识别")) IconName = ":/res/ico/qrcode.png";
|
|
if (Name.contains("字符识别")) IconName = ":/res/ico/ocr.png";
|
|
if (Name.contains("分类器")) IconName = ":/res/ico/classifier.png";
|
|
if (Name.contains("颜色识别")) IconName = ":/res/ico/color_r.png";
|
|
if (Name.contains("亮度检测")) IconName = ":/res/ico/brightness.png";
|
|
if (Name.contains("图像清晰度")) IconName = ":/res/ico/clarity.png";
|
|
if (Name.contains("轮廓特征选择")) IconName = ":/res/ico/shape.png";
|
|
if (Name.contains("N点标定")) IconName = ":/res/ico/ert_calib.png";
|
|
if (Name.contains("畸变标定")) IconName = ":/res/ico/distortion_calib.png";
|
|
if (Name.contains("测量标定")) IconName = ":/res/ico/measure_calib.png";
|
|
if (Name.contains("灰度匹配")) IconName = ":/res/ico/match.png";
|
|
if (Name.contains("形状匹配")) IconName = ":/res/ico/shape_match.png";
|
|
if (Name.contains("目标跟踪")) IconName = ":/res/ico/track.png";
|
|
if (Name.contains("线性计算")) IconName = ":/res/ico/affine.png";
|
|
if (Name.contains("线圆交点")) IconName = ":/res/ico/line_circle.png";
|
|
if (Name.contains("点+点")) IconName = ":/res/ico/point_point.png";
|
|
if (Name.contains("点+线")) IconName = ":/res/ico/point_l.png";
|
|
if (Name.contains("线线交点")) IconName = ":/res/ico/intersection.png";
|
|
if (Name.contains("查找圆缺角")) IconName = ":/res/ico/rounded_c.png";
|
|
if (Name.contains("寻找圆")) IconName = ":/res/ico/find_circle.png";
|
|
if (Name.contains("寻找直线")) IconName = ":/res/ico/find_line.png";
|
|
if (Name.contains("拟合圆")) IconName = ":/res/ico/fit_circle.png";
|
|
if (Name.contains("拟合椭圆")) IconName = ":/res/ico/fit_ellipse.png";
|
|
if (Name.contains("拟合直线")) IconName = ":/res/ico/fit_line.png";
|
|
if (Name.contains("获取边界点")) IconName = ":/res/ico/border_point.png";
|
|
if (Name.contains("边缘宽度测量")) IconName = ":/res/ico/edge.png";
|
|
if (Name.contains("拟合平面")) IconName = ":/res/ico/flatness.png";
|
|
if (Name.contains("扩展库")) IconName = ":/res/ico/extension_library.png";
|
|
if (Name.contains("跳转语句")) IconName = ":/res/ico/goto.png";
|
|
if (Name.contains("判断语句")) IconName = ":/res/ico/logic_judge.png";
|
|
if (Name.contains("结束语句")) IconName = ":/res/ico/end.png";
|
|
if (Name.contains("脚本编辑")) IconName = ":/res/ico/script_edit.png";
|
|
if (Name.contains("TCP/IP服务器")) IconName = ":/res/ico/server.png";
|
|
if (Name.contains("TCP/IP客户端")) IconName = ":/res/ico/client.png";
|
|
if (Name.contains("PLC通信")) IconName = ":/res/ico/plc_communicate.png";
|
|
if (Name.contains("串口通信")) IconName = ":/res/ico/serial_port.png";
|
|
if (Name.contains("通用I/O")) IconName = ":/res/ico/general_io.png";
|
|
if (Name.contains("延时")) IconName = ":/res/ico/delay.png";
|
|
if (Name.contains("导出CSV")) IconName = ":/res/ico/export_csv.png";
|
|
return IconName;
|
|
}
|