add monitor diagram dynamic para
This commit is contained in:
parent
fb814b65a5
commit
7cb676d940
|
|
@ -105,6 +105,8 @@ public:
|
||||||
|
|
||||||
void monitorItemSelected(QUuid); //运行时item选中事件
|
void monitorItemSelected(QUuid); //运行时item选中事件
|
||||||
void monitorItemDetailAttr(QUuid); //显示属性详情
|
void monitorItemDetailAttr(QUuid); //显示属性详情
|
||||||
|
|
||||||
|
void monitorItemSet(QUuid); //运行时item设置完成
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void activatePage(const QString&); //激活当前model所在page
|
void activatePage(const QString&); //激活当前model所在page
|
||||||
void updateCurrentItems(QList<monitorRelationItem>,bool); //更新当前组态元件列表 <名称,uid>
|
void updateCurrentItems(QList<monitorRelationItem>,bool); //更新当前组态元件列表 <名称,uid>
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,7 @@ class ItemPort;
|
||||||
class ModelProperty;
|
class ModelProperty;
|
||||||
class PowerEntity;
|
class PowerEntity;
|
||||||
class AbstractProperty;
|
class AbstractProperty;
|
||||||
|
class HandleText;
|
||||||
|
|
||||||
typedef AbstractShapeType<QGraphicsItem> AbstractShape;
|
typedef AbstractShapeType<QGraphicsItem> AbstractShape;
|
||||||
|
|
||||||
|
|
@ -198,6 +199,12 @@ public:
|
||||||
virtual bool getPosChanged() {return _posChanged;}
|
virtual bool getPosChanged() {return _posChanged;}
|
||||||
virtual void setMoveable(bool b){_bMove = b;}
|
virtual void setMoveable(bool b){_bMove = b;}
|
||||||
virtual bool getMoveable(){return _bMove;}
|
virtual bool getMoveable(){return _bMove;}
|
||||||
|
virtual void addDynamicText(QString tag,QString para); //动态显示数据
|
||||||
|
virtual void removeDynamicText(QString tag); //移除动态显示数据
|
||||||
|
virtual void removeAllDynamicText();
|
||||||
|
virtual bool hasDynamicText(const QString& tag);
|
||||||
|
virtual void setDynamicLayoutRadius(qreal radius);
|
||||||
|
virtual QMap<QString,HandleText*> getDynamicText() {return m_mapDynamicText;}
|
||||||
|
|
||||||
int collidesWithHandle(const QPointF& point)
|
int collidesWithHandle(const QPointF& point)
|
||||||
{
|
{
|
||||||
|
|
@ -474,20 +481,27 @@ public:
|
||||||
double dParam = dWidth > dHeight ? (dDiagonal-dWidth*0.5):(dDiagonal-dHeight*0.5);
|
double dParam = dWidth > dHeight ? (dDiagonal-dWidth*0.5):(dDiagonal-dHeight*0.5);
|
||||||
m_boundingRect_selected = boundRect.adjusted(-dParam-nMargin, -dParam-nMargin, dParam+nMargin, dParam+nMargin);
|
m_boundingRect_selected = boundRect.adjusted(-dParam-nMargin, -dParam-nMargin, dParam+nMargin, dParam+nMargin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rearrangeDynamicItems();
|
||||||
public slots:
|
public slots:
|
||||||
void onUpdateData(); //data发送的更新通知
|
void onUpdateData(); //data发送的更新通知
|
||||||
|
protected:
|
||||||
|
void rearrangeDynamicText(); //重新设置动态数据的布局
|
||||||
protected:
|
protected:
|
||||||
ModelProperty* _property;
|
ModelProperty* _property;
|
||||||
PowerEntity* _pEntity; //图元拓扑
|
PowerEntity* _pEntity; //图元拓扑
|
||||||
bool _itemChanged; //图元变化标志,判断是否需要保存
|
bool _itemChanged; //图元变化标志,判断是否需要保存
|
||||||
QMap<QString,ItemPort*> m_mapPort; //单独存放port
|
QMap<QString,ItemPort*> m_mapPort; //单独存放port
|
||||||
|
QMap<QString,HandleText*> m_mapDynamicText; //单独存放动态数据
|
||||||
QMap<int,ItemControlHandle*> m_vecHanle;
|
QMap<int,ItemControlHandle*> m_vecHanle;
|
||||||
QPointF m_lastPoint; //鼠标上次点击位置
|
QPointF m_lastPoint; //鼠标上次点击位置
|
||||||
bool m_touched; //被触碰状态
|
bool m_touched; //被触碰状态
|
||||||
QRectF m_boundingRect_selected; //选中矩形框
|
QRectF m_boundingRect_selected; //选中矩形框
|
||||||
bool _posChanged = false; //位置移动标志
|
bool _posChanged = false; //位置移动标志
|
||||||
bool _bMove = true; //是否允许移动
|
bool _bMove = true; //是否允许移动
|
||||||
|
|
||||||
|
private:
|
||||||
|
qreal m_layoutRadius; // 布局半径 (动态数据使用)
|
||||||
};
|
};
|
||||||
|
|
||||||
class GraphicsBaseModelItem : public GraphicsBaseItem //基模item
|
class GraphicsBaseModelItem : public GraphicsBaseItem //基模item
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include "graphicsItem/itemControlHandle.h"
|
#include "graphicsItem/itemControlHandle.h"
|
||||||
|
|
||||||
int const TEXT_WIDTH = 30;
|
int const TEXT_WIDTH = 80;
|
||||||
int const TEXT_HEIGHT = 15;
|
int const TEXT_HEIGHT = 40;
|
||||||
|
|
||||||
class QGraphicsProxyWidget;
|
class QGraphicsProxyWidget;
|
||||||
|
|
||||||
|
|
@ -20,6 +20,13 @@ public:
|
||||||
virtual QString getText() const override;
|
virtual QString getText() const override;
|
||||||
void creatEditor(); //创建editor编辑文本
|
void creatEditor(); //创建editor编辑文本
|
||||||
void setEditable(bool b){_editable = b;}
|
void setEditable(bool b){_editable = b;}
|
||||||
|
void setIndex(int n) {_nIndex = n;}
|
||||||
|
int getIndex(){return _nIndex;}
|
||||||
|
void setTagName(QString s){_sTagName = s;}
|
||||||
|
QString getTagName(){return _sTagName;}
|
||||||
|
void setPara(QString s){_sPara = s;}
|
||||||
|
QString getPara(){return _sPara;}
|
||||||
|
void setType(int n) {_type = n;}
|
||||||
signals:
|
signals:
|
||||||
void editFinish(const QString&);
|
void editFinish(const QString&);
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -31,6 +38,10 @@ private:
|
||||||
QRectF _boundingRect;
|
QRectF _boundingRect;
|
||||||
QGraphicsProxyWidget* _proxy;
|
QGraphicsProxyWidget* _proxy;
|
||||||
bool _editable;
|
bool _editable;
|
||||||
|
int _nIndex;
|
||||||
|
QString _sTagName; //监控数据的tag
|
||||||
|
QString _sPara; //监控数据的查询参数
|
||||||
|
int _type; //0normal 1dynamic
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
#include "projectManager.h"
|
#include "projectManager.h"
|
||||||
#include "diagramCavas.h"
|
#include "diagramCavas.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "basePropertyManager.h"
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
EditPanel::EditPanel(QWidget *parent)
|
EditPanel::EditPanel(QWidget *parent)
|
||||||
|
|
@ -60,7 +61,7 @@ EditPanel::~EditPanel()
|
||||||
|
|
||||||
void EditPanel::initByWizardInfo()
|
void EditPanel::initByWizardInfo()
|
||||||
{
|
{
|
||||||
if(!_lstData.empty()){
|
//if(!_lstData.empty() || !_pModel->getPreviewItem().empty()){
|
||||||
_pModel->clearItems();
|
_pModel->clearItems();
|
||||||
m_pEditScene->clear();
|
m_pEditScene->clear();
|
||||||
_lstData.clear();
|
_lstData.clear();
|
||||||
|
|
@ -70,7 +71,8 @@ void EditPanel::initByWizardInfo()
|
||||||
_mainWidget->setLayout(_widgetLayout);
|
_mainWidget->setLayout(_widgetLayout);
|
||||||
m_pEditScene->addItem(_mainWidget);
|
m_pEditScene->addItem(_mainWidget);
|
||||||
_mainWidget->setGeometry(m_pEditScene->sceneRect());
|
_mainWidget->setGeometry(m_pEditScene->sceneRect());
|
||||||
}
|
BasePropertyManager::instance().clearEditorData();
|
||||||
|
//}
|
||||||
auto& mapTotal = _pEditorWizard->getContainerStruct();
|
auto& mapTotal = _pEditorWizard->getContainerStruct();
|
||||||
for(auto iter = mapTotal.begin();iter != mapTotal.end();++iter){
|
for(auto iter = mapTotal.begin();iter != mapTotal.end();++iter){
|
||||||
if(iter.key() == g_transformerLevel)
|
if(iter.key() == g_transformerLevel)
|
||||||
|
|
|
||||||
|
|
@ -465,6 +465,7 @@ void DiagramEditorModel::linkTransItem(GraphicsBaseModelItem* pTrans,QStandardIt
|
||||||
void DiagramEditorModel::generatePreview()
|
void DiagramEditorModel::generatePreview()
|
||||||
{
|
{
|
||||||
if(_pPanel){
|
if(_pPanel){
|
||||||
|
clearItems();
|
||||||
_pPanel->showPreview();
|
_pPanel->showPreview();
|
||||||
QList<EditBaseItem*> lst = _pPanel->getBlockItems();
|
QList<EditBaseItem*> lst = _pPanel->getBlockItems();
|
||||||
QMap<QString,QList<DiagramEditorComponentInfo>> baysCompo;
|
QMap<QString,QList<DiagramEditorComponentInfo>> baysCompo;
|
||||||
|
|
|
||||||
|
|
@ -2742,3 +2742,46 @@ void FixedPortsModel::monitorItemDetailAttr(QUuid uid)
|
||||||
pMonitor->detailItemSelected(uid);
|
pMonitor->detailItemSelected(uid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FixedPortsModel::monitorItemSet(QUuid uid)
|
||||||
|
{
|
||||||
|
if(_nodeItem.contains(uid)){
|
||||||
|
//QList<QString> lstRemove; //需要从item移除的动态数据
|
||||||
|
QList<QString> lstAdd; //需要向item添加的动态数据
|
||||||
|
|
||||||
|
auto pItem = _nodeItem.value(uid);
|
||||||
|
auto lst = m_monitorPara.value(uid);
|
||||||
|
//auto mapText = pItem->getDynamicText();
|
||||||
|
|
||||||
|
/*for(auto iter = mapText.begin();iter != mapText.end();++iter){
|
||||||
|
bool exist = false;
|
||||||
|
for(auto& info:lst){
|
||||||
|
if(info.sTag == iter.key()){ //新旧队列都存在
|
||||||
|
exist = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!exist)
|
||||||
|
lstRemove.append(iter.key());
|
||||||
|
}*/
|
||||||
|
|
||||||
|
for(auto& info:lst){
|
||||||
|
if(info.bShowDiagram && info.bSelected){
|
||||||
|
lstAdd.append(info.sTag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*for(auto& str:lstRemove){
|
||||||
|
pItem->removeDynamicText(str);
|
||||||
|
}*/
|
||||||
|
pItem->removeAllDynamicText();
|
||||||
|
|
||||||
|
for(auto& str:lstAdd){
|
||||||
|
for(auto& info:lst){
|
||||||
|
if(info.sTag == str){
|
||||||
|
pItem->addDynamicText(info.sTag,info.sConnectPara);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ GraphicsBaseItem::GraphicsBaseItem(QGraphicsItem *parent)
|
||||||
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||||
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
||||||
setAcceptHoverEvents(true);
|
setAcceptHoverEvents(true);
|
||||||
|
m_layoutRadius = 80;
|
||||||
}
|
}
|
||||||
|
|
||||||
GraphicsBaseItem::GraphicsBaseItem(const GraphicsBaseItem& obj)
|
GraphicsBaseItem::GraphicsBaseItem(const GraphicsBaseItem& obj)
|
||||||
|
|
@ -36,6 +37,8 @@ GraphicsBaseItem::GraphicsBaseItem(const GraphicsBaseItem& obj)
|
||||||
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
||||||
setAcceptHoverEvents(true);
|
setAcceptHoverEvents(true);
|
||||||
|
|
||||||
|
m_layoutRadius = 80;
|
||||||
|
|
||||||
m_lastPoint = obj.m_lastPoint;
|
m_lastPoint = obj.m_lastPoint;
|
||||||
m_touched = obj.m_touched;
|
m_touched = obj.m_touched;
|
||||||
m_boundingRect_selected = obj.m_boundingRect_selected;
|
m_boundingRect_selected = obj.m_boundingRect_selected;
|
||||||
|
|
@ -224,6 +227,99 @@ void GraphicsBaseItem::initialPortsByDatabase(int nComponentTypeId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphicsBaseItem::addDynamicText(QString tag,QString para)
|
||||||
|
{
|
||||||
|
int ntagId = -1;
|
||||||
|
for(ntagId = H_textCaption+1;ntagId < H_connect;++ntagId) //添加到未占用位置
|
||||||
|
{
|
||||||
|
if(!m_vecHanle.contains(ntagId))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
HandleText* pText = new HandleText(this);
|
||||||
|
pText->setEditable(false);
|
||||||
|
pText->setIndex(ntagId);
|
||||||
|
pText->setTagName(tag);
|
||||||
|
pText->setType(1);
|
||||||
|
m_vecHanle.insert(ntagId,pText);
|
||||||
|
|
||||||
|
m_mapDynamicText.insert(tag,pText);
|
||||||
|
rearrangeDynamicText();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsBaseItem::removeDynamicText(QString tag)
|
||||||
|
{
|
||||||
|
for(auto& pText:m_mapDynamicText){
|
||||||
|
if(pText->getTagName() == tag){
|
||||||
|
int nIndex = pText->getIndex();
|
||||||
|
m_vecHanle.remove(nIndex);
|
||||||
|
auto p = m_mapDynamicText.take(tag);
|
||||||
|
delete p;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rearrangeDynamicText();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsBaseItem::removeAllDynamicText()
|
||||||
|
{
|
||||||
|
for(auto iter = m_mapDynamicText.begin();iter != m_mapDynamicText.end();++iter){
|
||||||
|
int nIndex = iter.value()->getIndex();
|
||||||
|
m_vecHanle.remove(nIndex);
|
||||||
|
//auto p = m_mapDynamicText.take(iter.key());
|
||||||
|
//delete p;
|
||||||
|
}
|
||||||
|
qDeleteAll(m_mapDynamicText);
|
||||||
|
m_mapDynamicText.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GraphicsBaseItem::hasDynamicText(const QString& tag)
|
||||||
|
{
|
||||||
|
for(auto& pText:m_mapDynamicText){
|
||||||
|
if(pText->getTagName() == tag){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsBaseItem::setDynamicLayoutRadius(qreal radius)
|
||||||
|
{
|
||||||
|
m_layoutRadius = radius;
|
||||||
|
rearrangeDynamicText();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GraphicsBaseItem::rearrangeDynamicText()
|
||||||
|
{
|
||||||
|
int count = m_mapDynamicText.size();
|
||||||
|
if (count == 0) return;
|
||||||
|
|
||||||
|
// 计算左右两侧的项数
|
||||||
|
int leftCount = (count + 1) / 2; // 左侧稍多
|
||||||
|
int rightCount = count - leftCount;
|
||||||
|
|
||||||
|
qreal itemHeight = 30;
|
||||||
|
qreal startY = -((qMax(leftCount, rightCount) - 1) * itemHeight) / 2;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for (auto& item : m_mapDynamicText) {
|
||||||
|
qreal x, y;
|
||||||
|
|
||||||
|
if (i < leftCount) {
|
||||||
|
// 左侧排列
|
||||||
|
x = -m_layoutRadius-20; // 左侧偏移多一点
|
||||||
|
y = startY + i * itemHeight;
|
||||||
|
} else {
|
||||||
|
// 右侧排列
|
||||||
|
x = m_layoutRadius; // 右侧偏移
|
||||||
|
y = startY + (i - leftCount) * itemHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
item->setPos(x, y);
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
/********************************基模****************************************/
|
/********************************基模****************************************/
|
||||||
GraphicsBaseModelItem::GraphicsBaseModelItem(QGraphicsItem *parent)
|
GraphicsBaseModelItem::GraphicsBaseModelItem(QGraphicsItem *parent)
|
||||||
:GraphicsBaseItem(parent)
|
:GraphicsBaseItem(parent)
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ HandleText::HandleText(QGraphicsItem *parent)
|
||||||
: ItemControlHandle(parent)
|
: ItemControlHandle(parent)
|
||||||
,_font(QFont())
|
,_font(QFont())
|
||||||
,_proxy(nullptr)
|
,_proxy(nullptr)
|
||||||
|
,_nIndex(-1)
|
||||||
|
,_type(0)
|
||||||
{
|
{
|
||||||
_editable = true;
|
_editable = true;
|
||||||
_boundingRect = QRectF(-TEXT_WIDTH*0.5,-TEXT_WIDTH*0.5,TEXT_WIDTH,TEXT_HEIGHT);
|
_boundingRect = QRectF(-TEXT_WIDTH*0.5,-TEXT_WIDTH*0.5,TEXT_WIDTH,TEXT_HEIGHT);
|
||||||
|
|
@ -65,7 +67,13 @@ void HandleText::paint(QPainter* painter, const QStyleOptionGraphicsItem* option
|
||||||
painter->setRenderHint(QPainter::TextAntialiasing, true);
|
painter->setRenderHint(QPainter::TextAntialiasing, true);
|
||||||
int w = _boundingRect.width();
|
int w = _boundingRect.width();
|
||||||
int h = _boundingRect.height();
|
int h = _boundingRect.height();
|
||||||
painter->drawText(QPointF(-w*0.5,h*0.5),_text);
|
if(_type == 0)
|
||||||
|
painter->drawText(QPointF(-w*0.5,h*0.5),_text);
|
||||||
|
else{
|
||||||
|
QString displayText = _sTagName + ":" + _text;
|
||||||
|
painter->drawText(boundingRect(), Qt::AlignCenter, displayText);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QRectF HandleText::boundingRect() const
|
QRectF HandleText::boundingRect() const
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include "monitorToolBox.h"
|
#include "monitorToolBox.h"
|
||||||
#include "monitorSideBarDlg.h"
|
#include "monitorSideBarDlg.h"
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
#include <QLabel>
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
MonitorAttributeDlg::MonitorAttributeDlg(QWidget* parent)
|
MonitorAttributeDlg::MonitorAttributeDlg(QWidget* parent)
|
||||||
|
|
@ -23,9 +24,25 @@ MonitorAttributeDlg::~MonitorAttributeDlg()
|
||||||
|
|
||||||
void MonitorAttributeDlg::initial()
|
void MonitorAttributeDlg::initial()
|
||||||
{
|
{
|
||||||
|
// 创建标题栏
|
||||||
|
QWidget *titleBar = new QWidget(this);
|
||||||
|
titleBar->setFixedHeight(21);
|
||||||
|
titleBar->setStyleSheet("background-color: #2b579a; color: white;");
|
||||||
|
|
||||||
|
// 标题栏布局
|
||||||
|
QHBoxLayout *titleLayout = new QHBoxLayout(titleBar);
|
||||||
|
titleLayout->setContentsMargins(10, 0, 5, 0);
|
||||||
|
|
||||||
|
// 标题标签
|
||||||
|
QLabel *titleLabel = new QLabel("对象属性");
|
||||||
|
titleLabel->setStyleSheet("color: white; font-weight: bold;");
|
||||||
|
|
||||||
|
titleLayout->addWidget(titleLabel);
|
||||||
|
|
||||||
_pLayout = new QVBoxLayout(this);
|
_pLayout = new QVBoxLayout(this);
|
||||||
_pBox = new MonitorToolBox(this);
|
_pBox = new MonitorToolBox(this);
|
||||||
_pBox->setContentsMargins(0, 0, 0, 0);
|
_pBox->setContentsMargins(0, 0, 0, 0);
|
||||||
|
_pLayout->addWidget(titleBar);
|
||||||
_pLayout->addWidget(_pBox);
|
_pLayout->addWidget(_pBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,9 @@ void MonitorAttributeGroupDlg::createGroupView(QList<monitorItemAttributeInfo> l
|
||||||
{
|
{
|
||||||
QWidget* content = new QWidget();
|
QWidget* content = new QWidget();
|
||||||
QGridLayout* gridLayout = new QGridLayout(content);
|
QGridLayout* gridLayout = new QGridLayout(content);
|
||||||
gridLayout->setHorizontalSpacing(20);
|
gridLayout->setHorizontalSpacing(6);
|
||||||
gridLayout->setVerticalSpacing(12);
|
gridLayout->setVerticalSpacing(10);
|
||||||
//gridLayout->setContentsMargins(12, 12, 12, 12);
|
gridLayout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
// 设置列的最小宽度和拉伸比例
|
// 设置列的最小宽度和拉伸比例
|
||||||
gridLayout->setColumnMinimumWidth(0, 30); // 标签列最小宽度
|
gridLayout->setColumnMinimumWidth(0, 30); // 标签列最小宽度
|
||||||
|
|
@ -85,6 +85,7 @@ QWidget* MonitorAttributeGroupDlg::createEditor(monitorItemAttributeInfo info)
|
||||||
}
|
}
|
||||||
else{ //图表
|
else{ //图表
|
||||||
QChartView* chartView = new QChartView(this);
|
QChartView* chartView = new QChartView(this);
|
||||||
|
chartView->setMinimumSize(400, 300);
|
||||||
chartView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
chartView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
chartView->setRenderHint(QPainter::Antialiasing);
|
chartView->setRenderHint(QPainter::Antialiasing);
|
||||||
|
|
||||||
|
|
@ -95,6 +96,9 @@ QWidget* MonitorAttributeGroupDlg::createEditor(monitorItemAttributeInfo info)
|
||||||
// 创建折线序列
|
// 创建折线序列
|
||||||
QLineSeries* series = new QLineSeries();
|
QLineSeries* series = new QLineSeries();
|
||||||
|
|
||||||
|
QFont axisFont;
|
||||||
|
axisFont.setPointSize(9);
|
||||||
|
|
||||||
// 创建图表
|
// 创建图表
|
||||||
chart->addSeries(series);
|
chart->addSeries(series);
|
||||||
chart->setTitle(info.sName);
|
chart->setTitle(info.sName);
|
||||||
|
|
@ -110,10 +114,6 @@ QWidget* MonitorAttributeGroupDlg::createEditor(monitorItemAttributeInfo info)
|
||||||
QValueAxis* axisX = new QValueAxis();
|
QValueAxis* axisX = new QValueAxis();
|
||||||
QValueAxis* axisY = new QValueAxis();
|
QValueAxis* axisY = new QValueAxis();
|
||||||
|
|
||||||
// 设置坐标轴标题
|
|
||||||
axisX->setTitleText("时间");
|
|
||||||
axisY->setTitleText("值");
|
|
||||||
|
|
||||||
// 添加坐标轴到图表
|
// 添加坐标轴到图表
|
||||||
chart->addAxis(axisX, Qt::AlignBottom);
|
chart->addAxis(axisX, Qt::AlignBottom);
|
||||||
chart->addAxis(axisY, Qt::AlignLeft);
|
chart->addAxis(axisY, Qt::AlignLeft);
|
||||||
|
|
@ -126,9 +126,21 @@ QWidget* MonitorAttributeGroupDlg::createEditor(monitorItemAttributeInfo info)
|
||||||
axisX->setRange(0, 10); // 临时范围
|
axisX->setRange(0, 10); // 临时范围
|
||||||
axisY->setRange(0, 100);
|
axisY->setRange(0, 100);
|
||||||
|
|
||||||
|
// 设置坐标轴标题
|
||||||
|
axisX->setTitleText("时间");
|
||||||
|
axisX->setLabelsFont(axisFont);
|
||||||
|
axisX->setTitleFont(axisFont);
|
||||||
|
axisY->setTitleText("值");
|
||||||
|
axisY->setLabelsFont(axisFont);
|
||||||
|
axisY->setTitleFont(axisFont);
|
||||||
|
|
||||||
chart->setTheme(QChart::ChartThemeLight);
|
chart->setTheme(QChart::ChartThemeLight);
|
||||||
chart->legend()->setVisible(true);
|
chart->legend()->setVisible(true);
|
||||||
chart->legend()->setAlignment(Qt::AlignBottom);
|
chart->legend()->setAlignment(Qt::AlignBottom);
|
||||||
|
|
||||||
|
QFont legendFont = chart->legend()->font();
|
||||||
|
legendFont.setPointSize(8); // 设置图例字体大小
|
||||||
|
chart->legend()->setFont(legendFont);
|
||||||
}
|
}
|
||||||
else if (info.nGraphType == 1) {
|
else if (info.nGraphType == 1) {
|
||||||
QBarSeries* series = new QBarSeries();
|
QBarSeries* series = new QBarSeries();
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ void MonitorConfigDlg::onOkClicked()
|
||||||
savePropertyData(ui->treeView_para->currentIndex(),_curUuid);
|
savePropertyData(ui->treeView_para->currentIndex(),_curUuid);
|
||||||
}
|
}
|
||||||
_parent->getModelController()->getMonitorPara() = _tempConfig; //保存临时数据
|
_parent->getModelController()->getMonitorPara() = _tempConfig; //保存临时数据
|
||||||
|
_parent->getModelController()->monitorItemSet(_curUuid);
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
#include "monitorSelectedItemsDlg.h"
|
#include "monitorSelectedItemsDlg.h"
|
||||||
#include "monitorSideBarDlg.h"
|
#include "monitorSideBarDlg.h"
|
||||||
#include "monitorPanel.h"
|
#include "monitorPanel.h"
|
||||||
#include "global.h"
|
#include <QLabel>
|
||||||
|
|
||||||
|
|
||||||
MonitorSelectedItemsDlg::MonitorSelectedItemsDlg(QWidget* parent)
|
MonitorSelectedItemsDlg::MonitorSelectedItemsDlg(QWidget* parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
|
|
@ -24,7 +25,22 @@ void MonitorSelectedItemsDlg::initial()
|
||||||
_treeView->setModel(_parent->getParent()->getLstModel());
|
_treeView->setModel(_parent->getParent()->getLstModel());
|
||||||
_treeView->setHeaderHidden(true);
|
_treeView->setHeaderHidden(true);
|
||||||
|
|
||||||
|
// 创建标题栏
|
||||||
|
QWidget *titleBar = new QWidget(this);
|
||||||
|
titleBar->setFixedHeight(21);
|
||||||
|
titleBar->setStyleSheet("background-color: #2b579a; color: white;");
|
||||||
|
|
||||||
|
// 标题栏布局
|
||||||
|
QHBoxLayout *titleLayout = new QHBoxLayout(titleBar);
|
||||||
|
titleLayout->setContentsMargins(10, 0, 5, 0);
|
||||||
|
|
||||||
|
// 标题标签
|
||||||
|
QLabel *titleLabel = new QLabel("图元列表");
|
||||||
|
titleLabel->setStyleSheet("color: white; font-weight: bold;");
|
||||||
|
|
||||||
|
titleLayout->addWidget(titleLabel);
|
||||||
_pLayout = new QVBoxLayout(this);
|
_pLayout = new QVBoxLayout(this);
|
||||||
|
_pLayout->addWidget(titleBar);
|
||||||
_pLayout->addWidget(_treeView);
|
_pLayout->addWidget(_treeView);
|
||||||
connect(_treeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
connect(_treeView->selectionModel(), &QItemSelectionModel::currentChanged,
|
||||||
this, &MonitorSelectedItemsDlg::onSelectionChanged);
|
this, &MonitorSelectedItemsDlg::onSelectionChanged);
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,6 @@ void MonitorSideBarDlg::initial()
|
||||||
splitter->addWidget(_attributeDlg);
|
splitter->addWidget(_attributeDlg);
|
||||||
|
|
||||||
splitter->setStretchFactor(0, 1); // 第一个部件的拉伸因子为1
|
splitter->setStretchFactor(0, 1); // 第一个部件的拉伸因子为1
|
||||||
splitter->setStretchFactor(1, 2); // 第二个部件的拉伸因子为3
|
splitter->setStretchFactor(1, 3); // 第二个部件的拉伸因子为3
|
||||||
sideLayout->addWidget(splitter);
|
sideLayout->addWidget(splitter);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue