文字结论道支持保存到json模板,右键功能完善。
This commit is contained in:
parent
c4da8b1de9
commit
00d29515ed
|
|
@ -50,10 +50,8 @@ void TransparentDraggableRect::setRange(double left_Low, double right_Hight)
|
||||||
mPixmap->topLeft->setCoords(right_Hight, lY1);
|
mPixmap->topLeft->setCoords(right_Hight, lY1);
|
||||||
mPixmap->bottomRight->setCoords(left_Low, lY2);
|
mPixmap->bottomRight->setCoords(left_Low, lY2);
|
||||||
|
|
||||||
//mItemTitle->position->setCoords(0.5, 0.5);
|
float flNewPos = mPlot->xAxis->coordToPixel((left_Low + right_Hight)/2.0) - 15;
|
||||||
// 设置父锚点,定位点
|
mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
|
||||||
//mItemTitle->position->setParentAnchor(mRect->bottom);
|
|
||||||
mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
|
|
||||||
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
|
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
|
||||||
|
|
||||||
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
|
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
|
||||||
|
|
@ -81,12 +79,6 @@ void TransparentDraggableRect::setColor(const QColor &color)
|
||||||
void TransparentDraggableRect::deleteRect()
|
void TransparentDraggableRect::deleteRect()
|
||||||
{
|
{
|
||||||
if(mPlot) {
|
if(mPlot) {
|
||||||
|
|
||||||
// mRect->deleteLater();
|
|
||||||
// mLeftHandle->deleteLater();
|
|
||||||
// mRightHandle->deleteLater();
|
|
||||||
// mPixmap->deleteLater();
|
|
||||||
|
|
||||||
mPlot->m_mapDraggable_Rect.remove(m_strUuid);
|
mPlot->m_mapDraggable_Rect.remove(m_strUuid);
|
||||||
|
|
||||||
mPlot->removeItem(mRect);
|
mPlot->removeItem(mRect);
|
||||||
|
|
@ -97,15 +89,6 @@ void TransparentDraggableRect::deleteRect()
|
||||||
|
|
||||||
mPlot->replot();
|
mPlot->replot();
|
||||||
this->deleteLater();
|
this->deleteLater();
|
||||||
|
|
||||||
//
|
|
||||||
// //避免二次绘制框图
|
|
||||||
// mPlot->m_bDrawRect = false;
|
|
||||||
// mDragMode = DragNone;
|
|
||||||
// //取消选中框
|
|
||||||
// mPlot->selectionRect()->cancel();
|
|
||||||
// mPlot->replot();
|
|
||||||
// mPlot->selectionRect()->mActive=true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,25 @@ public:
|
||||||
QString mstrTitle="";
|
QString mstrTitle="";
|
||||||
QString m_strUuid = "";
|
QString m_strUuid = "";
|
||||||
|
|
||||||
|
//以下字段为临时添加,后面需要数据组集成
|
||||||
|
QFont wordfont; //文字字体
|
||||||
|
QColor fontColor; //字体颜色
|
||||||
|
QColor backgroundColor; //背景颜色
|
||||||
|
int leftAndRightAlign; //左右对齐方式
|
||||||
|
int upAndDownAlign; //上下对齐方式
|
||||||
|
|
||||||
|
// BEGIN_ENUM(LeftAndRightDesc)
|
||||||
|
// { 0,L"中间对齐" },
|
||||||
|
// { 1,L"左对齐" },
|
||||||
|
// { 2,L"右对齐" }
|
||||||
|
// END_ENUM(LeftAndRightDesc);
|
||||||
|
|
||||||
|
// BEGIN_ENUM(UpAndDownDesc)
|
||||||
|
// { 0,L"上对齐" },
|
||||||
|
// { 1,L"中间对齐" },
|
||||||
|
// { 2,L"下对齐" }
|
||||||
|
// END_ENUM(UpAndDownDesc);
|
||||||
|
|
||||||
enum DragMode { DragNone, DragLeft, DragRight, DragRect };
|
enum DragMode { DragNone, DragLeft, DragRight, DragRect };
|
||||||
DragMode mDragMode = DragNone;
|
DragMode mDragMode = DragNone;
|
||||||
//double mDragStartX = 0;
|
//double mDragStartX = 0;
|
||||||
|
|
|
||||||
|
|
@ -300,9 +300,9 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT"
|
if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT"
|
||||||
|| strLineName == "GEO_LITH" || strLineName == "SWALL_CORE")
|
|| strLineName == "WORDS_RELUST" || strLineName == "GEO_LITH" || strLineName == "SWALL_CORE")
|
||||||
{
|
{
|
||||||
//固井结论/井壁取心/录井剖面
|
//固井结论/井壁取心/录井剖面/文字结论
|
||||||
DisplayTable_One(lineObjInfo);
|
DisplayTable_One(lineObjInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -161,6 +161,15 @@ QJsonObject FormInfo::makeJson()
|
||||||
//item属性写入slf文件,不需要此次记录
|
//item属性写入slf文件,不需要此次记录
|
||||||
return rootObj;
|
return rootObj;
|
||||||
}
|
}
|
||||||
|
else if (m_strLineName == "WORDS_RELUST")
|
||||||
|
{
|
||||||
|
//文字结论
|
||||||
|
rootObj["Type"] = m_strType;
|
||||||
|
rootObj["curveNameFont"] = m_curveNameFont.toString();
|
||||||
|
rootObj["lineColor"] = m_lineColor.name();
|
||||||
|
//item属性写入slf文件,不需要此次记录
|
||||||
|
return rootObj;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootObj["Unit"] = m_strUnit;
|
rootObj["Unit"] = m_strUnit;
|
||||||
|
|
|
||||||
|
|
@ -986,21 +986,12 @@ void QMyCustomPlot::contextMenuEvent(QContextMenuEvent *event)
|
||||||
QMenu menu(this);
|
QMenu menu(this);
|
||||||
//岩性描述,文字结论
|
//岩性描述,文字结论
|
||||||
menu.addAction(QIcon(::GetImagePath() + "curve.png"), "开始编辑文字结论", this, &QMyCustomPlot::onEditText);
|
menu.addAction(QIcon(::GetImagePath() + "curve.png"), "开始编辑文字结论", this, &QMyCustomPlot::onEditText);
|
||||||
//menu.addAction(QIcon(::GetImagePath() + "icon/CopyCoreTxt.png"), "从剪切板文本数据粘贴", this, &QMyCustomPlot::addItems_Text);
|
menu.addAction(QIcon(::GetImagePath() + "icon/CopyCoreTxt.png"), "从剪切板文本数据粘贴", this, &QMyCustomPlot::addItems_Text);
|
||||||
menu.addAction(QIcon(::GetImagePath() + "icon/ClearSelectCore.png"), "取消选中", this, &QMyCustomPlot::ClearSelectItems);
|
menu.addAction(QIcon(::GetImagePath() + "icon/ClearSelectCore.png"), "取消选中", this, &QMyCustomPlot::ClearSelectItems);
|
||||||
//menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "全部清空", this, &QMyCustomPlot::DeleteItems_Text);
|
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "全部清空", this, &QMyCustomPlot::DeleteItems_Text);
|
||||||
//menu.addAction(QIcon(::GetImagePath() + "icon/CopyCoreTxt.png"), "刷新数据", this, &QMyCustomPlot::RefreshItems_Text);
|
menu.addAction(QIcon(::GetImagePath() + "icon/CopyCoreTxt.png"), "刷新数据", this, &QMyCustomPlot::RefreshItems_Text);
|
||||||
menu.exec(event->globalPos());
|
menu.exec(event->globalPos());
|
||||||
}
|
}
|
||||||
|
|
||||||
// QAction *resetAction = menu.addAction("添加框图");
|
|
||||||
// connect(resetAction, &QAction::triggered, this, &QMyCustomPlot::onAddRect);
|
|
||||||
|
|
||||||
// if (selectedGraphs().size() > 0)//选中曲线
|
|
||||||
// {
|
|
||||||
// menu.addAction("删除选中曲线", this, SLOT(removeSelectedGraph()));
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//右键--添加分段线
|
//右键--添加分段线
|
||||||
|
|
@ -2215,20 +2206,7 @@ void QMyCustomPlot::DeleteItems_SWallCore()
|
||||||
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
AddTableToWellRound();
|
AddTableToWellRound();
|
||||||
|
|
||||||
//删除对象
|
RefreshItems_SWallCore(); //刷新数据
|
||||||
TransparentDraggableSwallCore *pDraggableRect =NULL;
|
|
||||||
QMap<QString,QObject *>::Iterator it = m_mapDraggable_SwallCore.begin();
|
|
||||||
while( it != m_mapDraggable_SwallCore.end() )
|
|
||||||
{
|
|
||||||
pDraggableRect = (TransparentDraggableSwallCore*)it.value();
|
|
||||||
it++;
|
|
||||||
pDraggableRect->deleteRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//保存
|
|
||||||
this->SaveToSLF_SwallCore();
|
|
||||||
//属性清空
|
|
||||||
PropertyService()->InitCurrentViewInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//全部清空
|
//全部清空
|
||||||
|
|
@ -2239,20 +2217,7 @@ void QMyCustomPlot::DeleteItems_GeoLith()
|
||||||
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
AddTableToWellRound();
|
AddTableToWellRound();
|
||||||
|
|
||||||
//删除对象
|
RefreshItems_GeoLith(); //刷新数据
|
||||||
TransparentDraggableGeoLith *pDraggableRect =NULL;
|
|
||||||
QMap<QString,QObject *>::Iterator it = m_mapDraggable_GeoLith.begin();
|
|
||||||
while( it != m_mapDraggable_GeoLith.end() )
|
|
||||||
{
|
|
||||||
pDraggableRect = (TransparentDraggableGeoLith*)it.value();
|
|
||||||
it++;
|
|
||||||
pDraggableRect->deleteRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//保存
|
|
||||||
this->SaveToSLF_GeoLith();
|
|
||||||
//属性清空
|
|
||||||
PropertyService()->InitCurrentViewInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//从剪切板文本数据粘贴
|
//从剪切板文本数据粘贴
|
||||||
|
|
@ -2923,20 +2888,7 @@ void QMyCustomPlot::DeleteItems_Gujing()
|
||||||
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
AddTableToWellRound();
|
AddTableToWellRound();
|
||||||
|
|
||||||
//删除对象
|
RefreshItems_Gujing(); //刷新数据
|
||||||
TransparentDraggableGujing *pDraggableRect =NULL;
|
|
||||||
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Gujing.begin();
|
|
||||||
while( it != m_mapDraggable_Gujing.end() )
|
|
||||||
{
|
|
||||||
pDraggableRect = (TransparentDraggableGujing*)it.value();
|
|
||||||
it++;
|
|
||||||
pDraggableRect->deleteRect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//保存
|
|
||||||
this->SaveToSLF_Gujing();
|
|
||||||
//属性清空
|
|
||||||
PropertyService()->InitCurrentViewInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//刷新数据
|
//刷新数据
|
||||||
|
|
@ -3643,13 +3595,13 @@ void QMyCustomPlot::addTextToPlot(double left_Low, double right_Hight, const QSt
|
||||||
QString strUuid = qtCommon->getUUid();
|
QString strUuid = qtCommon->getUUid();
|
||||||
// 在初始化代码中
|
// 在初始化代码中
|
||||||
TransparentDraggableRect *dragRect = new TransparentDraggableRect(this, strUuid);
|
TransparentDraggableRect *dragRect = new TransparentDraggableRect(this, strUuid);
|
||||||
// 设置初始范围
|
dragRect->setTitle(strText);
|
||||||
dragRect->setRange(left_Low, right_Hight);
|
|
||||||
// 可选:设置颜色
|
// 可选:设置颜色
|
||||||
dragRect->setColor(crColor); // 半透明白色
|
dragRect->setColor(crColor); // 半透明白色
|
||||||
|
// 设置初始范围
|
||||||
|
dragRect->setRange(left_Low, right_Hight);
|
||||||
//最小宽度
|
//最小宽度
|
||||||
dragRect->setMinWidth(0.1);
|
dragRect->setMinWidth(0.1);
|
||||||
dragRect->setTitle(strText);
|
|
||||||
|
|
||||||
m_mapDraggable_Rect[strUuid] = dragRect;
|
m_mapDraggable_Rect[strUuid] = dragRect;
|
||||||
}
|
}
|
||||||
|
|
@ -5208,7 +5160,7 @@ bool QMyCustomPlot::LoadFromSLF_Text(QString strSlfName, QString strLineName)
|
||||||
// wordfont.setFamily("黑体");
|
// wordfont.setFamily("黑体");
|
||||||
// wordfont.setPointSize(10);
|
// wordfont.setPointSize(10);
|
||||||
|
|
||||||
//显示文本
|
//插入文本
|
||||||
this->addTextToPlot(-m_Result->EndDepth, -m_Result->StartDepth, QString::fromLocal8Bit(m_Result->Words));
|
this->addTextToPlot(-m_Result->EndDepth, -m_Result->StartDepth, QString::fromLocal8Bit(m_Result->Words));
|
||||||
}
|
}
|
||||||
logio->CloseTable(iIndex);
|
logio->CloseTable(iIndex);
|
||||||
|
|
@ -5218,3 +5170,90 @@ bool QMyCustomPlot::LoadFromSLF_Text(QString strSlfName, QString strLineName)
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//从剪切板文本数据粘贴
|
||||||
|
void QMyCustomPlot::addItems_Text()
|
||||||
|
{
|
||||||
|
QClipboard *clipboard = QApplication::clipboard(); //获取系统剪贴板指针
|
||||||
|
QString originalText = clipboard->text(); //获取剪贴板上文本信息
|
||||||
|
int isspace=originalText.indexOf(" ");
|
||||||
|
int istab=originalText.indexOf("\t");
|
||||||
|
int isd=originalText.indexOf(",");
|
||||||
|
|
||||||
|
if((istab>-1|isd>-1)&&isspace>-1)
|
||||||
|
{
|
||||||
|
QMessageBox::information(NULL,"提示", "\",\"或制表符与空格键并存,自动分解可能有误!\n建议用单一符号风格!");
|
||||||
|
}
|
||||||
|
originalText.replace("\t"," ");
|
||||||
|
originalText.replace(","," ");
|
||||||
|
originalText.replace("\r\n","\n");
|
||||||
|
originalText.replace("\r","\n");
|
||||||
|
QStringList line=originalText.split("\n");
|
||||||
|
line.removeAll("");
|
||||||
|
for(int i=0;i<line.size();i++) {
|
||||||
|
QStringList coredat=line[i].split(" ");
|
||||||
|
if((istab==-1||isd==-1)&&isspace>=0) coredat.removeAll("");
|
||||||
|
if(coredat.size()<1) continue;
|
||||||
|
if(!coredat[0].isEmpty()&&!coredat[0].at(0).isDigit()) continue;
|
||||||
|
|
||||||
|
//文字结论
|
||||||
|
AddItem_Text(coredat);
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存
|
||||||
|
this->SaveToSLF_Text();
|
||||||
|
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QMyCustomPlot::AddItem_Text(QStringList lists)
|
||||||
|
{
|
||||||
|
if(lists.size()==3) lists.insert(0,"0");
|
||||||
|
double top=-9999.0;
|
||||||
|
double bottom=-9999.0;
|
||||||
|
if(lists.size()>1) top=lists[1].toDouble();
|
||||||
|
if(lists.size()>2) bottom=lists[2].toDouble();
|
||||||
|
if(top&&bottom==0) bottom=top;
|
||||||
|
if(top==bottom&&top==-9999.0) return;
|
||||||
|
|
||||||
|
if(lists.size()<4)
|
||||||
|
{
|
||||||
|
this->addTextToPlot(-bottom, -top, "");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//插入文本
|
||||||
|
this->addTextToPlot(-bottom, -top, lists[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//全部清空
|
||||||
|
void QMyCustomPlot::DeleteItems_Text()
|
||||||
|
{
|
||||||
|
if(QMessageBox::information(NULL,QObject::tr("提示"),QObject::tr("该功能将清除当前组件展示的全部信息,清除后无法恢复,但会备份到对应的\"_BAK\"中,确定清除吗?"),QMessageBox::Yes|QMessageBox::No)!=QMessageBox::Yes) return;
|
||||||
|
QString obj=m_strLineName + "BAK";
|
||||||
|
CopyToSLFFile(m_strSlfName, false, (char *)obj.toStdString().c_str());
|
||||||
|
AddTableToWellRound();
|
||||||
|
|
||||||
|
//刷新数据
|
||||||
|
RefreshItems_Text();
|
||||||
|
}
|
||||||
|
|
||||||
|
//刷新数据
|
||||||
|
void QMyCustomPlot::RefreshItems_Text()
|
||||||
|
{
|
||||||
|
//删除对象
|
||||||
|
TransparentDraggableRect *pDraggableRect =NULL;
|
||||||
|
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Rect.begin();
|
||||||
|
while( it != m_mapDraggable_Rect.end() )
|
||||||
|
{
|
||||||
|
pDraggableRect = (TransparentDraggableRect*)it.value();
|
||||||
|
it++;
|
||||||
|
pDraggableRect->deleteRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存
|
||||||
|
this->SaveToSLF_Text();
|
||||||
|
//属性清空
|
||||||
|
PropertyService()->InitCurrentViewInfo();
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -316,10 +316,10 @@ public slots:
|
||||||
|
|
||||||
//右键--编辑文字结论
|
//右键--编辑文字结论
|
||||||
void onEditText();
|
void onEditText();
|
||||||
// void addItems_Text(); //从剪切板文本数据粘贴
|
void addItems_Text(); //从剪切板文本数据粘贴
|
||||||
// void DeleteItems_Text(); //全部清空
|
void DeleteItems_Text(); //全部清空
|
||||||
// void RefreshItems_Text(); //刷新数据
|
void RefreshItems_Text(); //刷新数据
|
||||||
// void AddItem_Text(QStringList lists);
|
void AddItem_Text(QStringList lists);
|
||||||
|
|
||||||
//
|
//
|
||||||
void addItems_Core();
|
void addItems_Core();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user