#include "graphicsItem/electricSvgItemCT.h" #include "global.h" #include #include #include #include #include ElectricSvgItemCT::ElectricSvgItemCT(const QRect &rect, QGraphicsItem *parent) : ElectricSvgItem(rect,parent) { /*setHandleIfShow(H_textCaption,false); setHandleIfShow(H_textCurrent,false); setHandleIfShow(h_textVoltage,false); setHandleVisible(false); setFunctionHandleIfShow(false); setFunctionHandleEnaable(false);*/ initial(); } ElectricSvgItemCT::ElectricSvgItemCT(const ElectricSvgItemCT& obj) :ElectricSvgItem(obj) { initial(); _itemType = obj._itemType; } ElectricSvgItemCT::~ElectricSvgItemCT() { } ElectricSvgItemCT* ElectricSvgItemCT::clone() const { return new ElectricSvgItemCT(*this); } void ElectricSvgItemCT::initial() { setFlag(QGraphicsItem::ItemIsSelectable, false); setFlag(QGraphicsItem::ItemIsFocusable, false); setAcceptedMouseButtons(Qt::NoButton); } void ElectricSvgItemCT::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { if (!m_pRender || !m_pRender->isValid()) return; // 计算每个图形的宽度 qreal singleWidth = m_boundingRect.width() / 3.0; // 绘制第一个图形 if(_itemType == 1){ QRectF rect1(m_boundingRect.x(), m_boundingRect.y(), singleWidth, m_boundingRect.height()); m_pRender->render(painter, rect1); // 绘制第二个图形 QRectF rect2(m_boundingRect.x() + singleWidth, m_boundingRect.y(), singleWidth, m_boundingRect.height()); m_pRender->render(painter, rect2); // 绘制第三个图形 QRectF rect3(m_boundingRect.x() + 2 * singleWidth, m_boundingRect.y(), singleWidth, m_boundingRect.height()); m_pRender->render(painter, rect3); } else if(_itemType == 0){ QRectF rect(m_boundingRect.x() + singleWidth, m_boundingRect.y(), singleWidth, m_boundingRect.height()); m_pRender->render(painter, rect); } }