112 lines
3.6 KiB
C++
112 lines
3.6 KiB
C++
#include "formtrack.h"
|
|
#include "ui_formtrack.h"
|
|
#include <QDebug>
|
|
|
|
//曲线名称栏(表格)
|
|
FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) :
|
|
QWidget(parent),
|
|
ui(new Ui::FormTrack)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
m_strWellName = strWellName;
|
|
m_strTrackName = strTrackName;
|
|
|
|
//表格绑定井名,道名
|
|
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, QColor, double, float, float)),
|
|
this, SLOT(s_addLine(QString, QString, QString, QString, QColor, double, float, float)));
|
|
|
|
}
|
|
|
|
FormTrack::~FormTrack()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void FormTrack::Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor, double dWidth, float vmax, float vmin)
|
|
{
|
|
qDebug()<< "Add";
|
|
|
|
emit sig_AddLine(strSlfName, strWellName, m_strTrackName, strLineName, lineColor, dWidth, vmax, vmin);
|
|
|
|
}
|
|
|
|
void FormTrack::s_addLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor, double dWidth, float vmax, float vmin)
|
|
{
|
|
qDebug() << "FormTrack s_addLine";
|
|
|
|
int row = ui->tableWidget->rowCount();
|
|
ui->tableWidget->setRowCount(row + 1);
|
|
|
|
//曲线信息栏
|
|
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
|
|
formInfo->setLineWidth(dWidth);
|
|
formInfo->setVMax(vmax);
|
|
formInfo->setVMin(vmin);
|
|
//设置高度
|
|
ui->tableWidget->setRowHeight(row, 100);
|
|
//
|
|
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);
|
|
}
|
|
|
|
|
|
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; i<rowCount; i++)
|
|
{
|
|
if( ui->tableWidget->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;
|
|
}
|