# Conflicts:
#	logPlus/PropertyWidget.cpp
This commit is contained in:
DESKTOP-450PEFP\mainc 2026-02-06 09:23:56 +08:00
commit 1255631d7f
11 changed files with 217 additions and 223 deletions

View File

@ -124,6 +124,10 @@ signals:
//置顶层,并取消其他表格的选中状态
void sig_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType);
//图头、成果表
//取消其他表格的选中状态
void sig_UnSelectTableItem(QString strUuid);
//修改曲线选择状态 iSelect=0未知1标准曲线2主校曲线3从校曲线
void sig_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge);

View File

@ -75,6 +75,8 @@ void PropertyWidget::InitCurrentViewInfo(bool bAll)
{
m_fromTop = NULL;
m_formInfo = NULL;
m_formHead = NULL;
m_tableWidget = NULL;
m_item = NULL;
m_strUuid = "";
m_strSlfName = "";
@ -1131,7 +1133,7 @@ void PropertyWidget::initHeadProperty(FormHead *formHead, QTableWidget *tableWid
if (rowHeight_Img.isValid()) {
m_rowHeight_Img = rowHeight_Img.toDouble();
}
//行高、列宽
m_colWidth = tableWidget->columnWidth(col)/g_dPixelPerCm;
m_rowHeight = tableWidget->rowHeight(row)/g_dPixelPerCm;
@ -1143,7 +1145,7 @@ void PropertyWidget::initHeadProperty(FormHead *formHead, QTableWidget *tableWid
_CreateVariantPropertyItem("文本", "内容", item->text(), QVariant::String);
_CreateVariantPropertyItem("文本", "字体", m_item->font(), QVariant::Font);
_CreateEnumPropertyItem("文本", "方向", 0, listDirection);
//_CreateEnumPropertyItem("文本", "方向", 0, listDirection);
_CreateVariantPropertyItem("文本", "字体颜色", m_item->foreground().color(), QVariant::Color);
_CreateVariantPropertyItem("表格", "行高(cm)", m_rowHeight, QVariant::Double, 0, 100);

View File

@ -437,40 +437,9 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo)
}
}
//
if (lineObjInfo.contains("newColorRed"))
if (lineObjInfo.contains("newColor"))
{
QJsonValue value = lineObjInfo.value("newColorRed");
if (value.isDouble()) {
newColor.setRed(value.toInt());
//qDebug() << "newColorRed:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorGreen"))
{
QJsonValue value = lineObjInfo.value("newColorGreen");
if (value.isDouble()) {
newColor.setGreen(value.toInt());
//qDebug() << "newColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorBlue"))
{
QJsonValue value = lineObjInfo.value("newColorBlue");
if (value.isDouble()) {
newColor.setBlue(value.toInt());
//qDebug() << "newColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorAlpha"))
{
QJsonValue value = lineObjInfo.value("newColorAlpha");
if (value.isDouble()) {
newColor.setAlpha(value.toInt());
//qDebug() << "newColorAlpha:" << QString::number(value.toInt());
}
newColor.setNamedColor(lineObjInfo.value("newColor").toString());
}
if (lineObjInfo.contains("newLithosImage"))
@ -498,76 +467,15 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo)
}
}
//
if (lineObjInfo.contains("frontColorRed"))
if (lineObjInfo.contains("frontColor"))
{
QJsonValue value = lineObjInfo.value("frontColorRed");
if (value.isDouble()) {
frontColor.setRed(value.toInt());
//qDebug() << "frontColorRed:" << QString::number(value.toInt());
}
frontColor.setNamedColor(lineObjInfo.value("frontColor").toString());
}
//
if (lineObjInfo.contains("frontColorGreen"))
if (lineObjInfo.contains("backColor"))
{
QJsonValue value = lineObjInfo.value("frontColorGreen");
if (value.isDouble()) {
frontColor.setGreen(value.toInt());
//qDebug() << "frontColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("frontColorBlue"))
{
QJsonValue value = lineObjInfo.value("frontColorBlue");
if (value.isDouble()) {
frontColor.setBlue(value.toInt());
//qDebug() << "frontColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("frontColorAlpha"))
{
QJsonValue value = lineObjInfo.value("frontColorAlpha");
if (value.isDouble()) {
frontColor.setAlpha(value.toInt());
//qDebug() << "frontColorAlpha:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorRed"))
{
QJsonValue value = lineObjInfo.value("backColorRed");
if (value.isDouble()) {
backColor.setRed(value.toInt());
//qDebug() << "backColorRed:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorGreen"))
{
QJsonValue value = lineObjInfo.value("backColorGreen");
if (value.isDouble()) {
backColor.setGreen(value.toInt());
//qDebug() << "backColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorBlue"))
{
QJsonValue value = lineObjInfo.value("backColorBlue");
if (value.isDouble()) {
backColor.setBlue(value.toInt());
//qDebug() << "backColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorAlpha"))
{
QJsonValue value = lineObjInfo.value("backColorAlpha");
if (value.isDouble()) {
backColor.setAlpha(value.toInt());
//qDebug() << "backColorAlpha:" << QString::number(value.toInt());
}
backColor.setNamedColor(lineObjInfo.value("backColor").toString());
}
//

View File

@ -174,6 +174,7 @@ void FormHead::Init(int iRows, int iCols)
// 设置字体颜色
QColor colorTxt(0, 0, 0, 255);
item->setForeground(QBrush(colorTxt));
//item->setData(Qt::UserRole, QVariant("vertical"));
//
ui->tableWidget->setItem(i, j, item);
@ -226,7 +227,92 @@ void FormHead::Init(int iRows, int iCols)
//初始化完成后再连接信号槽,防止数据初始化时激活信号
connect(ui->tableWidget, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(onItemChanged(QTableWidgetItem*)));
connect(ui->tableWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));
connect(ui->tableWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));//曲线选中,置顶
connect(CallManage::getInstance(), SIGNAL(sig_UnSelectTableItem(QString)), this, SLOT(s_UnSelectTableItem(QString)));
}
QJsonObject FormHead::makeJson()
{
int columnCount = ui->tableWidget->columnCount();//总列数
int rowCount = ui->tableWidget->rowCount();//总行数
// 创建根对象
QJsonObject rootObj;
//
rootObj["indexID"] = m_indexID;
rootObj["iRows"] = rowCount;
rootObj["iCols"] = columnCount;
//
QJsonArray subcaseArray;
for(int col=0; col<columnCount; col++)
{
for(int row=0; row<rowCount; row++)
{
QTableWidgetItem* item = ui->tableWidget->item(col, row);
QJsonObject formHeadObj;
formHeadObj["col"] = col;
formHeadObj["row"] = row;
if(item)
{
//图例
QString imagePath = "";
//图头, 图例宽高
double m_colWidth_Img = 1;
double m_rowHeight_Img = 1;
//图头, 行高、列宽
double m_colWidth = 1;
double m_rowHeight = 1;
QVariant bgData = item->data(Qt::UserRole+1); // 我们约定用这个角色存储图片路径
if (bgData.isValid()) {
imagePath = bgData.toString();
}
//图例宽
QVariant colWidth_Img = item->data(Qt::UserRole+2);
if (colWidth_Img.isValid()) {
m_colWidth_Img = colWidth_Img.toDouble();
}
//图例高
QVariant rowHeight_Img = item->data(Qt::UserRole+3);
if (rowHeight_Img.isValid()) {
m_rowHeight_Img = rowHeight_Img.toDouble();
}
//行高、列宽
m_colWidth = ui->tableWidget->columnWidth(col)/g_dPixelPerCm;
m_rowHeight = ui->tableWidget->rowHeight(row)/g_dPixelPerCm;
//----------------
formHeadObj["imagePath"] = imagePath;
formHeadObj["colWidth_Img"] = m_colWidth_Img;
formHeadObj["rowHeight_Img"] = m_rowHeight_Img;
formHeadObj["backColor"] = item->background().color().name();//背景颜色
formHeadObj["text"] = item->text();
formHeadObj["Font"] = item->font().toString();
formHeadObj["FontColor"] = item->foreground().color().name();
formHeadObj["colWidth"] = m_colWidth;
formHeadObj["rowHeight"] = m_rowHeight;
}
subcaseArray.append(formHeadObj);
}
}
rootObj["items"]=subcaseArray;
return rootObj;
}
//图头、成果表
//取消其他表格的选中状态
void FormHead::s_UnSelectTableItem(QString strUuid)
{
if(strUuid==m_indexID)
{
return;
}
//取消表格的选中状态
ui->tableWidget->clearSelection();
}
void FormHead::slotItemClicked(QTableWidgetItem* item)
@ -238,6 +324,8 @@ void FormHead::slotItemClicked(QTableWidgetItem* item)
if(row>=0 && column>=0)
{
PropertyService()->initHeadProperty(this, ui->tableWidget, item, row, column);
//取消其他表格的选中状态
emit CallManage::getInstance()->sig_UnSelectTableItem(m_indexID);
}
}
}
@ -252,6 +340,8 @@ void FormHead::onItemSelectionChanged()
if(row>=0 && column>=0)
{
PropertyService()->initHeadProperty(this, ui->tableWidget, item, row, column);
//取消其他表格的选中状态
emit CallManage::getInstance()->sig_UnSelectTableItem(m_indexID);
}
}
}
@ -272,6 +362,8 @@ void FormHead::onItemChanged(QTableWidgetItem* item)
if(row>=0 && column>=0)
{
PropertyService()->initHeadProperty(this, ui->tableWidget, item, row, column);
//取消其他表格的选中状态
emit CallManage::getInstance()->sig_UnSelectTableItem(m_indexID);
}
}
}
@ -488,6 +580,8 @@ void FormHead::Paste()
item->setData(Qt::UserRole+2, pixmap.width()/g_dPixelPerCm); //图例宽
item->setData(Qt::UserRole+3, pixmap.height()/g_dPixelPerCm); //图例高
PropertyService()->initHeadProperty(this, ui->tableWidget, item, rowN, colN);
//取消其他表格的选中状态
emit CallManage::getInstance()->sig_UnSelectTableItem(m_indexID);
return;
}

View File

@ -42,6 +42,7 @@ public:
public:
void Init(int iRows, int iCols);
void resizeEvent(QResizeEvent *event);
QJsonObject makeJson();
public slots:
void resizeWindow();
@ -49,6 +50,9 @@ public slots:
void slotItemClicked(QTableWidgetItem* item);
void onItemChanged(QTableWidgetItem* item);
void onItemSelectionChanged();
//图头、成果表
//取消其他表格的选中状态
void s_UnSelectTableItem(QString strUuid);
//图头右键菜单响应函数
void slotContextMenu(QPoint pos);

View File

@ -126,23 +126,14 @@ QJsonObject FormInfo::makeJson()
rootObj["newTargetLine"] = m_newTargetLine;
rootObj["newFillType"] = m_newFillType;
//填充颜色
rootObj["newColorRed"] = m_newColor.red();
rootObj["newColorGreen"] = m_newColor.green();
rootObj["newColorBlue"] = m_newColor.blue();
rootObj["newColorAlpha"] = m_newColor.alpha();
rootObj["newColor"] = m_newColor.name();
rootObj["newLithosImage"] = m_newLithosImage;
rootObj["new_vMax"] = m_new_vMax;
rootObj["new_vMin"] = m_new_vMin;
//岩性前景色
rootObj["frontColorRed"] = m_frontColor.red();
rootObj["frontColorGreen"] = m_frontColor.green();
rootObj["frontColorBlue"] = m_frontColor.blue();
rootObj["frontColorAlpha"] = m_frontColor.alpha();
rootObj["frontColor"] = m_frontColor.name();
//岩性背景色
rootObj["backColorRed"] = m_backColor.red();
rootObj["backColorGreen"] = m_backColor.green();
rootObj["backColorBlue"] = m_backColor.blue();
rootObj["backColorAlpha"] = m_backColor.alpha();
rootObj["backColor"] = m_backColor.name();
}
else if (m_strType == "waveObject")
{

View File

@ -64,8 +64,16 @@ void FormMultiHeads::slotContextMenu(QPoint pos)
{
QtCommonClass *qtCommon = new QtCommonClass(this);
//
QString strMenu= "";
if(m_strHeadOrTail == "Head")
{
strMenu= "新建图头";
}
else {
strMenu= "新建成果表";
}
QMenu menu(ui->tableWidget);
QAction *newAction = menu.addAction("新建图头");
QAction *newAction = menu.addAction(strMenu);
// 弹出菜单
QAction *selectedAction = menu.exec(ui->tableWidget->mapToGlobal(pos));
if (selectedAction == newAction) {
@ -151,3 +159,33 @@ void FormMultiHeads::resizeItem(QString indexID, double tempWidth, double tempHi
}
}
}
QJsonObject FormMultiHeads::makeJson()
{
// 创建根对象
QJsonObject rootObj;
// 创建JSON数组并填充数据
QJsonArray subcaseArray;
//
int columnCount = ui->tableWidget->columnCount();//总列数
for(int i=0; i<columnCount; i++)
{
QJsonObject formHeadObj;
formHeadObj["id"] = i;
if( ui->tableWidget->cellWidget(i, 0) != nullptr )
{
auto myWidget = ui->tableWidget->cellWidget(i, 0);
FormHead *widgetHead = qobject_cast<FormHead*>(myWidget);
if(widgetHead)
{
QJsonObject jobj = widgetHead->makeJson();
formHeadObj["headinfo"] = jobj;
}
}
subcaseArray.append(formHeadObj);
}
rootObj["formMultiHeads"]=subcaseArray;
return rootObj;
}

View File

@ -3,6 +3,11 @@
#include <QWidget>
//
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
namespace Ui {
class FormMultiHeads;
}
@ -26,7 +31,10 @@ public slots:
public:
void resizeItem(QString indexID, double tempWidth, double tempHight);
QJsonObject makeJson();
public:
QString m_strHeadOrTail = ""; //Head代表图头 Tail代表成果表
};
#endif // FORMMULTIHEADS_H

View File

@ -141,12 +141,13 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
//执行压缩/拉伸
connect(CallManage::getInstance(), SIGNAL(sig_EShiftDepth(QString, QString, int, QList<double>, QList<double>)), this, SLOT(s_EShiftDepth(QString, QString, int, QList<double>, QList<double>)));
//图头
//图头----------
m_dock1=new QDockWidget(tr(""),this);
m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable
//dock1->setAllowedAreas(Qt::TopDockWidgetArea);
//
m_formMultiHeads = new FormMultiHeads(this);
m_formMultiHeads->m_strHeadOrTail = "Head";
m_dock1->setWidget(m_formMultiHeads);
addDockWidget(Qt::TopDockWidgetArea,m_dock1);
//移除标题栏
@ -157,6 +158,23 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
//隐藏
m_dock1->hide();
//成果表----------
m_dock2=new QDockWidget(tr(""),this);
m_dock2->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable
//dock1->setAllowedAreas(Qt::TopDockWidgetArea);
//
m_formMultiTails = new FormMultiHeads(this);
m_formMultiTails->m_strHeadOrTail = "Tail";
m_dock2->setWidget(m_formMultiTails);
addDockWidget(Qt::BottomDockWidgetArea,m_dock2);
//移除标题栏
QWidget* lTitleBar_Tails = m_dock2->titleBarWidget();
QWidget* lEmptyWidget_Tails = new QWidget();
m_dock2->setTitleBarWidget(lEmptyWidget_Tails);
delete lTitleBar_Tails;
//隐藏
m_dock2->hide();
//属性编辑器
// m_propertyWidget = PropertyService();
// m_propertyWidget->setWindowTitle("属性编辑器");
@ -2290,9 +2308,11 @@ void MainWindowCurve::s_showHeadTable()
if(m_dock1->isVisible())
{
m_dock1->hide();
m_dock2->hide();
}
else {
m_dock1->show();
m_dock2->show();
}
// if(ui->tableWidget->isVisible())
@ -2370,6 +2390,12 @@ QJsonObject MainWindowCurve::makeJson()
}
rootObj["wells"]=subcaseArray;
//图头
rootObj["heads"]=m_formMultiHeads->makeJson();
//成果表
rootObj["tails"]=m_formMultiTails->makeJson();
return rootObj;
}
@ -4057,41 +4083,11 @@ void MainWindowCurve::DisplayLine_One(QJsonObject lineObjInfo, QString strTrackN
//qDebug() << "newFillMode:" << newFillMode;
}
}
//
if (lineObjInfo.contains("newColorRed"))
if (lineObjInfo.contains("newColor"))
{
QJsonValue value = lineObjInfo.value("newColorRed");
if (value.isDouble()) {
newColor.setRed(value.toInt());
//qDebug() << "newColorRed:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorGreen"))
{
QJsonValue value = lineObjInfo.value("newColorGreen");
if (value.isDouble()) {
newColor.setGreen(value.toInt());
//qDebug() << "newColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorBlue"))
{
QJsonValue value = lineObjInfo.value("newColorBlue");
if (value.isDouble()) {
newColor.setBlue(value.toInt());
//qDebug() << "newColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("newColorAlpha"))
{
QJsonValue value = lineObjInfo.value("newColorAlpha");
if (value.isDouble()) {
newColor.setAlpha(value.toInt());
//qDebug() << "newColorAlpha:" << QString::number(value.toInt());
}
newColor.setNamedColor(lineObjInfo.value("newColor").toString());
}
if (lineObjInfo.contains("newLithosImage"))
@ -4119,76 +4115,15 @@ void MainWindowCurve::DisplayLine_One(QJsonObject lineObjInfo, QString strTrackN
}
}
//
if (lineObjInfo.contains("frontColorRed"))
if (lineObjInfo.contains("frontColor"))
{
QJsonValue value = lineObjInfo.value("frontColorRed");
if (value.isDouble()) {
frontColor.setRed(value.toInt());
//qDebug() << "frontColorRed:" << QString::number(value.toInt());
}
frontColor.setNamedColor(lineObjInfo.value("frontColor").toString());
}
//
if (lineObjInfo.contains("frontColorGreen"))
if (lineObjInfo.contains("backColor"))
{
QJsonValue value = lineObjInfo.value("frontColorGreen");
if (value.isDouble()) {
frontColor.setGreen(value.toInt());
//qDebug() << "frontColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("frontColorBlue"))
{
QJsonValue value = lineObjInfo.value("frontColorBlue");
if (value.isDouble()) {
frontColor.setBlue(value.toInt());
//qDebug() << "frontColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("frontColorAlpha"))
{
QJsonValue value = lineObjInfo.value("frontColorAlpha");
if (value.isDouble()) {
frontColor.setAlpha(value.toInt());
//qDebug() << "frontColorAlpha:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorRed"))
{
QJsonValue value = lineObjInfo.value("backColorRed");
if (value.isDouble()) {
backColor.setRed(value.toInt());
//qDebug() << "backColorRed:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorGreen"))
{
QJsonValue value = lineObjInfo.value("backColorGreen");
if (value.isDouble()) {
backColor.setGreen(value.toInt());
//qDebug() << "backColorGreen:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorBlue"))
{
QJsonValue value = lineObjInfo.value("backColorBlue");
if (value.isDouble()) {
backColor.setBlue(value.toInt());
//qDebug() << "backColorBlue:" << QString::number(value.toInt());
}
}
//
if (lineObjInfo.contains("backColorAlpha"))
{
QJsonValue value = lineObjInfo.value("backColorAlpha");
if (value.isDouble()) {
backColor.setAlpha(value.toInt());
//qDebug() << "backColorAlpha:" << QString::number(value.toInt());
}
backColor.setNamedColor(lineObjInfo.value("backColor").toString());
}
//

View File

@ -67,7 +67,9 @@ public:
QVector<CurveLine*> m_mergeLineList;
FormMultiHeads *m_formMultiHeads;
FormMultiHeads *m_formMultiTails;
QDockWidget *m_dock1;
QDockWidget *m_dock2;
QtProjectWidgets *m_leftWidgets = NULL; //左侧工程区
QLineEdit *spinbox1;

View File

@ -454,7 +454,15 @@ QScrollArea{
border:0px;
}
QTreeView,QListView,QTableView,QTabWidget::pane{
QTableView{
border:1px solid #B6B6B6;
selection-background-color:#F6F6F6;
selection-color:#57595B;
alternate-background-color:#F6F6F6;
gridline-color:#B6B6B6;
}
QTreeView,QListView,QTabWidget::pane{
border:1px solid #B6B6B6;
selection-background-color:#F6F6F6;
selection-color:#57595B;