100 lines
2.6 KiB
C++
100 lines
2.6 KiB
C++
#include "graphicsItem/functionModelItem/electricFunctionModelSvgItemImage.h"
|
|
#include "graphicsDataModel/fixedPortsModel.h"
|
|
#include "baseProperty.h"
|
|
|
|
#include <QPainter>
|
|
#include <QStyleOption>
|
|
#include <QGraphicsScene>
|
|
#include <QGraphicsView>
|
|
#include <QSvgRenderer>
|
|
|
|
ElectricFunctionModelSvgItemImage::ElectricFunctionModelSvgItemImage(const QRect &rect, QGraphicsItem *parent)
|
|
: ElectricFunctionModelSvgItem(rect,parent)
|
|
{
|
|
initial();
|
|
}
|
|
|
|
ElectricFunctionModelSvgItemImage::~ElectricFunctionModelSvgItemImage()
|
|
{
|
|
|
|
}
|
|
|
|
void ElectricFunctionModelSvgItemImage::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<QString,QByteArray> mapData;
|
|
if(!svgData.isEmpty()){
|
|
mapData["customImage"] = svgData;
|
|
updateMapSvg(mapData,"customImage");
|
|
loadSvg(svgData);
|
|
updateItem();
|
|
}
|
|
|
|
QString sMeta;
|
|
QString sModel;
|
|
QUuid itemId;
|
|
if(_property){
|
|
sMeta = _property->metaModelName();
|
|
sModel = _property->modelName();
|
|
itemId = _property->uuid();
|
|
}
|
|
|
|
if(_pHandle)
|
|
_pHandle->updateCustomItemIcon(itemId,mapData);
|
|
|
|
ElectricFunctionModelSvgItem::setImage_1(info);
|
|
}
|
|
|
|
|
|
void ElectricFunctionModelSvgItemImage::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
|
{
|
|
if(!m_pRender){
|
|
painter->setPen(QPen(QColor(238,58,140,220)));
|
|
painter->drawRect(m_boundingRect);
|
|
}
|
|
|
|
painter->setFont(m_font);
|
|
painter->setPen(m_textColor);
|
|
//QRectF textRect = m_boundingRect.adjusted(2, 2, -2, -2);
|
|
painter->drawText(m_boundingRect, Qt::AlignCenter, m_text);
|
|
ElectricFunctionModelSvgItem::paint(painter,option,widget);
|
|
}
|
|
|
|
void ElectricFunctionModelSvgItemImage::initial()
|
|
{
|
|
setHandleIfShow(H_textCaption,false);
|
|
setHandleVisible(false);
|
|
setFunctionHandleIfShow(false);
|
|
setFunctionHandleEnaable(false);
|
|
}
|
|
|
|
void ElectricFunctionModelSvgItemImage::setText(const QString& text)
|
|
{
|
|
if (m_text != text) {
|
|
m_text = text;
|
|
update(); // 触发重绘
|
|
// 标记为已修改
|
|
setItemChanged(true);
|
|
auto pPro = dynamic_cast<GraphicProperty*>(getProperty());
|
|
if(pPro){
|
|
pPro->setContent(text); //同步修改属性值
|
|
}
|
|
}
|
|
}
|
|
|
|
void ElectricFunctionModelSvgItemImage::setFontSize(int n)
|
|
{
|
|
if(n>0 && n <100){
|
|
m_font.setPointSize(n);
|
|
}
|
|
}
|