#include "graphicsItem/functionModelItem/electricFunctionModelSvgGroupCT.h" #include "graphicsItem/functionModelItem/electricFunctionModelSvgItemCT.h" #include "graphicsDataModel/fixedPortsModel.h" #include "baseProperty.h" #include "global.h" #include #include #include #include ElectricFunctionModelSvgGroupCT::ElectricFunctionModelSvgGroupCT(const QRect &rect, QGraphicsItem *parent) : ElectricFunctionModelSvgGroup(rect,parent) { initial(); } ElectricFunctionModelSvgGroupCT::~ElectricFunctionModelSvgGroupCT() { } void ElectricFunctionModelSvgGroupCT::setImage_1(QFileInfo info) { QByteArray svgData; QFile svgFile(info.absoluteFilePath()); if (svgFile.open(QIODevice::ReadOnly)) { svgData = svgFile.readAll(); svgFile.close(); } else { qDebug() << "can't open imgfile" << svgFile.errorString(); } QMap mapData; if(!svgData.isEmpty()){ mapData["ct"] = svgData; updateMapSvg(mapData,"ct"); updateItem(); } QString sMeta; QString sModel; if(_property){ sMeta = _property->metaModelName(); sModel = _property->modelName(); } if(_pHandle && !sMeta.isEmpty() && !sModel.isEmpty()) _pHandle->updateItemIcon(sMeta,sModel,mapData,"ct"); GraphicsBaseItem::setImage_1(info); } void ElectricFunctionModelSvgGroupCT::setupFinish(QVariant var) { if(var.canConvert>()){ QPair pair = var.value>(); _nType = pair.first; _nSize = pair.second; } updateItem(); } void ElectricFunctionModelSvgGroupCT::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { ElectricFunctionModelSvgGroup::paint(painter,option,widget); if(m_childItems.isEmpty()){ //无对象时绘制提示框 QPen pen(Qt::darkYellow); pen.setStyle(Qt::DotLine); painter->setPen(pen); painter->drawRect(m_boundingRect); } } void ElectricFunctionModelSvgGroupCT::initial() { setHandleIfShow(H_textCaption,false); setHandleVisible(false); setFunctionHandleIfShow(false); setFunctionHandleEnaable(false); if(!_itemImgIndex.contains("ct")) _itemImgIndex.append("ct"); if(!_itemImgIndex.contains("zsct")) _itemImgIndex.append("zsct"); } void ElectricFunctionModelSvgGroupCT::updateItem() { for(auto pItem:m_childItems){ delete pItem; } m_childItems.clear(); QRect rec(0,0,90,30); if(_nType == 1){ for(int i = 0;i < _nSize;++i){ ElectricFunctionModelSvgItemCT* p = new ElectricFunctionModelSvgItemCT(rec); p->setItemType(_nType); p->setMoveable(false); p->loadSvg(m_mapSvg["ct"]); addSvgItem(p); } } else if(_nType == 0){ ElectricFunctionModelSvgItemCT* p = new ElectricFunctionModelSvgItemCT(rec); p->setItemType(_nType); p->setMoveable(false); p->loadSvg(m_mapSvg["zsct"]); addSvgItem(p); } updateTerPos(); }