#include #include "ObjTubingstringResult.h" #include "MemRdWt.h" #include "geometryutils.h" CObjTubingstringResult::CObjTubingstringResult() { if(zoneOrder.size()==0) { zoneOrder=GetZoneOrder(QString("TubTools.ini")); } cclimgpath=GetSymbolDir()+"\\管柱组件\\"; } CObjTubingstringResult::~CObjTubingstringResult() { m_pResultList.clear(); } bool CObjTubingstringResult::LoadFromSLF(QMyCustomPlot *widget, QString strSlfName, QString csCurve) { m_pResultList.clear(); // //隐藏刻度 // widget->xAxis->setTicks(false); // widget->yAxis->setTicks(false); // widget->xAxis2->setTicks(false); // widget->yAxis2->setTicks(false); Slf_JIEGUPOS *m_pResult=NULL; CMemRdWt *logio=new CMemRdWt(); if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead)) { delete logio; // QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes); return false; } int iIndex=logio->OpenTable(csCurve.toStdString().c_str()); if(iIndex>-1) { int count=logio->GetTableRecordCount(iIndex); //int fieldnum=logio->GetTableFieldCount(iIndex); int len=logio->GetTableRecordLength(iIndex); m_pResult=(Slf_JIEGUPOS *)new char[len+1]; char buf[200]; logio->IsChange=true; bool bDrawGuanzhu = false; for(int i=0;iReadTable(iIndex,i+1,m_pResult); Slf_JIEGUPOS result; result.Depth=m_pResult->Depth; result.Order=m_pResult->Order; result.Number=m_pResult->Number; m_pResultList.append(result); // double depth=m_pResult->Depth; int Order=m_pResult->Order; int Number=m_pResult->Number; if(bDrawGuanzhu == false) { //还没有画管柱 if(Number == zoneOrder.value("管底部").toInt()|| Number == zoneOrder.value("油管深").toInt()|| Number == zoneOrder.value("喇叭口").toInt()|| Number == zoneOrder.value("剌叭口").toInt()) { bDrawGuanzhu = true;//画管柱 QString shotimgfile=GetSymbolDir()+"\\管柱组件\\管柱.png"; //QImage shotimg(shotimgfile); //pPainter->drawImage(rect,shotimg); double lY1 = widget->yAxis->range().lower;//+10 double lY2 = widget->yAxis->range().upper; QCPItemPixmap *mPixmap; mPixmap = new QCPItemPixmap(widget); //mPixmap->setPixmap(QPixmap(":/image/file.png")); // 设置图片 mPixmap->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式 mPixmap->setLayer("overlay"); // 确保在最上层 // float upper = widget->xAxis->range().upper; mPixmap->topLeft->setCoords(upper, lY1 + (lY2-lY1-m_Oguan)/2.0); mPixmap->bottomRight->setCoords(-depth, lY2 - (lY2-lY1-m_Oguan)/2.0); mPixmap->setPixmap(QPixmap(shotimgfile)); // 设置图片 } } } logio->CloseTable(iIndex); delete m_pResult; } delete logio; for(int i=0; ixAxis->coordToPixel(-depth)-h/2.0; float lower = widget->xAxis->coordToPixel(-depth)+h/2.0; float newUpper = widget->xAxis->pixelToCoord(upper); float newLower = widget->xAxis->pixelToCoord(lower); widget->addGuanToPlot(newLower, newUpper, cclimgfile, in); // QString cclimgfile=cclimgpath+name+".png"; // double lY1 = widget->yAxis->range().lower;//+10 // double lY2 = widget->yAxis->range().upper; // QCPItemPixmap *mPixmap; // mPixmap = new QCPItemPixmap(widget); // mPixmap->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式 // mPixmap->setLayer("overlay"); // 确保在最上层 // // // float upper = widget->xAxis->coordToPixel(-depth)-h/2.0; // float lower = widget->xAxis->coordToPixel(-depth)+h/2.0; // float newUpper = widget->xAxis->pixelToCoord(upper); // float newLower = widget->xAxis->pixelToCoord(lower); // mPixmap->topLeft->setCoords(newUpper, lY1 + (lY2-lY1-in)/2.0); // mPixmap->bottomRight->setCoords(newLower, lY2 - (lY2-lY1-in)/2.0); // mPixmap->setPixmap(QPixmap(cclimgfile)); // 设置图片 }