74 lines
2.0 KiB
C++
74 lines
2.0 KiB
C++
#include "graphicsItem/electricSvgItemCT.h"
|
|
#include "global.h"
|
|
|
|
#include <QSvgRenderer>
|
|
#include <QPainter>
|
|
#include <QStyleOption>
|
|
#include <QGraphicsScene>
|
|
#include <QGraphicsView>
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
|