#include "graphicsItem/electricSvgItemTriangle.h" #include "graphicsItem/itemControlHandle.h" #include #include ElectricSvgItemTriangle::ElectricSvgItemTriangle(const QRect &rect, QGraphicsItem *parent) : ElectricSvgItem(rect,parent) { loadSvg(":/images/element/svg_triangle.svg"); //入线口 ItemControlHandle* pHandle1 = new ItemControlHandle(this); pHandle1->setType(T_lineIn); pHandle1->setTag(H_connect); m_vecHanle.insert(H_connect,pHandle1); //出线口 ItemControlHandle* pHandle2 = new ItemControlHandle(this); pHandle2->setType(T_lineOut); pHandle2->setTag(H_connect+1); m_vecHanle.insert(H_connect+1,pHandle2); ItemControlHandle* pHandle3 = new ItemControlHandle(this); pHandle3->setType(T_lineOut); pHandle3->setTag(H_connect+2); m_vecHanle.insert(H_connect+2,pHandle3); m_dTopRatioX = 0.5; m_dBottomRatioX = 0.333; } ElectricSvgItemTriangle::~ElectricSvgItemTriangle() { } void ElectricSvgItemTriangle::updateHandles() { ElectricSvgItem::updateHandles(); if( m_vecHanle.contains(H_connect)) { const QRectF& boundingRect = this->boundingRect(); if(m_vecHanle.contains(H_connect)) { m_vecHanle[H_connect]->move(boundingRect.right() - boundingRect.width() * m_dTopRatioX, boundingRect.top()); } if(m_vecHanle.contains(H_connect + 1)) { m_vecHanle[H_connect + 1]->move(boundingRect.left() + boundingRect.width() * m_dBottomRatioX, boundingRect.bottom()); } if(m_vecHanle.contains(H_connect + 2)) { m_vecHanle[H_connect + 2]->move(boundingRect.right() - boundingRect.width() * m_dBottomRatioX, boundingRect.bottom()); } } } void ElectricSvgItemTriangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { ElectricSvgItem::paint(painter,option,widget); }