You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iGui/iGuiGridPty/iGridRowItemSub.h

126 lines
4.2 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "iGridRowItemUnt.h"
// 产量段数
class iParameterSeg;
class X_GUI_GRIDPTY_EXPORT iGridRowItemSub :
public iGridRowItemUnt
{
Q_OBJECT
public:
explicit iGridRowItemSub(iGridRowItem* pParent = nullptr);
~iGridRowItemSub();
public:
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
// 控件
virtual void initEditor();
virtual void configEditor();
virtual void initOtherEditors();
// 范围
virtual void setBounds(QRectF& rt);//全局
virtual QRectF getRightBounds_Main();//右
// 对于Editor的范围及颜色管理
virtual void checkAndClr();
virtual QString getEditorCss(bool bValid);
virtual bool isInputOk();
// 外界传递
virtual bool setCurValue(QVariant o);
virtual QVariant getCurValue();
public:
// 刷新
// n:段数
virtual void freshSubChild(int n, bool bBySegCount);
virtual void makesureChildren(int nTargetCount); //在反序列化时如果发现孩子个数不一致,则需要确保
/// @brief 创建(多少行/层子项为了后续改成表格方便姑且用Row
/* 第1层(李三)
* 深度 100
* 压力 27
* 渗透率 1.098
* 第2层(王五)
* 深度 110
* 压力 21
* 渗透率 3.098
*/
/// @param nTargetRowCount: (in) 目标是多少行/层
/// @param bResetAll: (in) 是否是否重新生成所有
virtual bool createRowChildren(int nTargetRowCount, bool bResetAll = false);
/// @brief 创建子项(第几行/层比如第一层、第二层的一或二为了后续改成表格方便姑且用Row
/* 第1层(李三)
* 深度 100
* 压力 27
* 渗透率 1.098
* 第2层(王五)
* 深度 110
* 压力 21
* 渗透率 3.098
*/
/// @param listSubItemNames: (in) 子项,具体可能需要加序号标识
/// @param listSubItemAliass: (in) 子项别称,具体可能需要加序号标识
/// @param nRowIndex: (in) 当前第几行/层
/// @param bAddNo: (in) 是否需要添加序号标识
virtual bool createOneRowChildOf(const QStringList& listSubItemNames, \
const QStringList& listSubItemAliass, \
int nRowIndex, \
bool bAddNo = true);
/// @brief 在过程中createRowChildOf允许根据当前数据进行调整某些项
/// @param pItemChild: (in) 待调整的项
/// @param sPara: (in) 子项,具体可能需要加序号标识
/// @param nRowIndex: (in) 当前第几行/层
/// @param nColIndex: (in) 当前行/层的第几个参数,默认为-1其实与sPara是对应的
virtual bool adjustValueOfRowChild(iGridRowItem* pItemChild, \
const QString sPara, \
int nRowIndex, \
int nColIndex = -1);
/// @brief 在过程中createRowChildOf允许调整内部标识
/// @param sTagInner: (in&out) TagInner
/// @param sNameInner: (in&out) NameInner
/// @param nRowIndex: (in) 当前第几行/层
virtual bool adjustTagOfRowChild(QString& sTagInner, \
QString& sNameInner, \
int nRowIndex);
/// @brief 在过程中createRowChildOf允许调整内部标识
/// @param sTagInner: (in&out) TagInner
/// @param sNameInner: (in&out) NameInner
/// @param nRowIndex: (in) 当前第几行/层
virtual bool adjustTagOfRowGroup(QString& sTagInner, \
int nRowIndex);
/// @brief 允许外部对子项进行调整
/// @param listSubItemNames: (in & out) 调整后的子项
/// @param listSubItemAliass: (in & out) 调整后的子项别称
/// @result 是否已经调整
bool adjustSubItemNames(QStringList& listSubItemNames, \
QStringList& listSubItemAliass);
public slots:
virtual void slotSubCountChanged(int n);
protected:
// 结果
virtual QVariant getInfoRight();
virtual QString getInfoUnit();
protected:
};