#include "formtrack.h" #include "ui_formtrack.h" #include #include "CallManage.h" extern int g_iOneWidth; //道宽 //曲线名称栏(表格) FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) : QWidget(parent), ui(new Ui::FormTrack) { ui->setupUi(this); m_strWellName = strWellName; m_strTrackName = strTrackName; //单元格委托 //m_delegate = new NoLRBorderDelegate(); //隐藏网格线 ui->tableWidget->setShowGrid(false); //设置样式表,竖直边框宽度为0,隐藏 ui->tableWidget->setStyleSheet( "QTableView::item {border-left: 0px solid black;} \ QTableView::item:selected {border-left: 0px solid black;}\ QTableView::item {border-right: 0px solid black;} \ QTableView::item:selected {border-right: 0px solid black;}"); //表格绑定井名,道名 ui->tableWidget->m_strWellName = strWellName; ui->tableWidget->m_strTrackName = strTrackName; // ui->tableWidget->verticalHeader()->hide();//隐藏左侧系统序号栏 ui->tableWidget->horizontalHeader()->hide();//隐藏上方系统序号栏 //因为tableWidget需要提前规定好行数与列数 int recordcount = 0; //总行数 ui->tableWidget->setColumnCount(1);//总列数 ui->tableWidget->setRowCount(recordcount); //动态设置行数 //设置所有列均匀分布并填充满整个空间 QHeaderView *header = ui->tableWidget->horizontalHeader(); for (int i = 0; i < ui->tableWidget->columnCount(); ++i) { header->setSectionResizeMode(i, QHeaderView::Stretch); } //曲线 connect(this, SIGNAL(sig_AddLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //波列 connect(this, SIGNAL(sig_AddWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //波列 connect(this, SIGNAL(sig_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); // 深度 connect(this, SIGNAL(sig_AddDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); // 杆状图 connect(this, SIGNAL(sig_AddGanZhuangTu(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addGanZhuangTu(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); // 井眼垮塌矢量图 connect(this, SIGNAL(sig_AddJykt(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addJykt(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); // 井斜方位图 connect(this, SIGNAL(sig_AddDenv(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addDenv(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //岩心图片 connect(this, SIGNAL(sig_AddYanXinImage(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addYanXinImage(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //图像 成像 connect(this, SIGNAL(sig_AddDrawImage(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addDrawImage(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //裂缝 connect(this, SIGNAL(sig_AddCrack(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addCrack(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); //曲线选中,置顶 connect(CallManage::getInstance(), SIGNAL(sig_Raise(QString, QString, QString, QString, QString)), this, SLOT(s_Raise(QString, QString, QString, QString, QString))); } void FormTrack::s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName) { if(m_strUuid == strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) { // } else { //取消表格选中状态 ui->tableWidget->clearSelection(); } } FormTrack::~FormTrack() { delete ui; } void FormTrack::Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType) { qDebug()<< "Add"; if(strType=="curveObject") { emit sig_AddLine(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="waveObject") { emit sig_AddWave(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="tableObject") { //新建表格曲线 emit sig_AddTableLine(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="depthObject") { emit sig_AddDepth(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="ganzhuangtuObject") { emit sig_AddGanZhuangTu(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="JyktObject") { emit sig_AddJykt(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="DenvObject") { emit sig_AddDenv(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="yanxinImageObject") { emit sig_AddYanXinImage(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="DrawImageObject") { emit sig_AddDrawImage(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } else if(strType=="CrackObject") { emit sig_AddCrack(strSlfName, strWellName, m_strTrackName, strLineName, strAliasName, strUnit, lineColor, dWidth, vmax, vmin, strScaleType); } } void FormTrack::setDrawDt(QStringList listdt, float vmax, float vmin) { QString strWellName = listdt.at(1); QString strSlfName = listdt.at(2); QString strLineName = listdt.at(3); QString strType = listdt.at(4); // int nW = listdt.at(5).toInt(); ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); QString strAliasName = "深度"; if("depthObject" == strType) { strAliasName = "深度"; } else if("plObject" == strType) { strAliasName = "频率统计图"; } else if("roseObject" == strType) { strAliasName = "玫瑰图"; } QString strUnit = ""; QColor lineColor=QColor(0,0,0); double width=2; QString strScaleType = ""; //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, m_strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = strType; formInfo->m_nJg = 2; formInfo->setLineWidth(width); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addLine"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "curveObject"; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); //------------------------------------ // QFont font("微软雅黑", 10, QFont::Bold, false); // // // QTableWidgetItem* item = new QTableWidgetItem(strLineName); // item->setFlags(item->flags() & (~Qt::ItemIsEditable)); // item->setForeground(QBrush(lineColor));// 设置字体颜色 // item->setFont(font); // 应用新的字体 // item->setTextAlignment(Qt::AlignCenter);//居中 // // // ui->tableWidget->setItem(row, 0, item); } void FormTrack::s_addWave(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addWave"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "waveObject"; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); //------------------------------------ // QFont font("微软雅黑", 10, QFont::Bold, false); // // // QTableWidgetItem* item = new QTableWidgetItem(strLineName); // item->setFlags(item->flags() & (~Qt::ItemIsEditable)); // item->setForeground(QBrush(lineColor));// 设置字体颜色 // item->setFont(font); // 应用新的字体 // item->setTextAlignment(Qt::AlignCenter);//居中 // // // ui->tableWidget->setItem(row, 0, item); } void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { if(strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT" || strLineName == "GEO_LITH" || strLineName == "SWALL_CORE" || strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT" || strLineName == "CORE_PHYSICS") { } else { return; } qDebug() << "FormTrack s_AddTableLine"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "tableObject"; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); //------------------------------------ // QFont font("微软雅黑", 10, QFont::Bold, false); // // // QTableWidgetItem* item = new QTableWidgetItem(strLineName); // item->setFlags(item->flags() & (~Qt::ItemIsEditable)); // item->setForeground(QBrush(lineColor));// 设置字体颜色 // item->setFont(font); // 应用新的字体 // item->setTextAlignment(Qt::AlignCenter);//居中 // // // ui->tableWidget->setItem(row, 0, item); } void FormTrack::s_addDepth(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addDepth"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "depthObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addGanZhuangTu(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addGanZhuangTu"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "ganzhuangtuObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addJykt(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addJykt"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "JyktObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addDenv(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addDenv"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "JyktObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addYanXinImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addYanXinImage"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "yanxinImageObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addDrawImage(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addDrawImage"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "DrawImageObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } void FormTrack::s_addCrack(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType) { qDebug() << "FormTrack s_addCrack"; ui->tableWidget->m_strUuid = m_strUuid; int row = ui->tableWidget->rowCount(); ui->tableWidget->setRowCount(row + 1); //避免出现小滚动条 //ui->tableWidget->resize(g_iOneWidth, 100*(row + 1)+10); //this->resize(g_iOneWidth, 100*(row + 1)+30); //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); formInfo->m_strUuid = m_strUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = "CrackObject"; formInfo->m_nJg = 2; formInfo->setLineWidth(dWidth); formInfo->setVMax(vmax); formInfo->setVMin(vmin); formInfo->setFrontColor(QColor(0,0,0)); formInfo->setBackColor(QColor(255,255,255)); //设置高度 ui->tableWidget->setRowHeight(row, 100); //单元格委托 //ui->tableWidget->setItemDelegateForRow(row, m_delegate); // ui->tableWidget->setCellWidget(row, 0, formInfo); } QJsonObject FormTrack::makeJson() { // 创建根对象 QJsonObject rootObj; // rootObj["WellName"] = m_strWellName; rootObj["TrackName"] = m_strTrackName; // 创建JSON数组并填充数据 QJsonArray subcaseArray; // int rowCount = ui->tableWidget->rowCount(); for(int i=0; itableWidget->cellWidget(i, 0) != nullptr ) { auto myWidget = ui->tableWidget->cellWidget(i, 0); // FormInfo *formInfo = (FormInfo*)myWidget;//获得widget if(formInfo) { //options QJsonObject formInfoObj; formInfoObj["id"] = i; formInfoObj["info"] = formInfo->makeJson(); subcaseArray.append(formInfoObj); } } } rootObj["formInfos"]=subcaseArray; return rootObj; }