logplus/logPlus/formtrack.cpp

116 lines
3.8 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";
ui->tableWidget->m_strUuid = m_strUuid;
int row = ui->tableWidget->rowCount();
ui->tableWidget->setRowCount(row + 1);
//曲线信息栏
FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor);
formInfo->m_strUuid = m_strUuid;
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->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;
}