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/mGui/mGuiJob/iWxResult.h

176 lines
4.9 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 "iWxBase.h"
#include "iResultInfo.h"
#include "ZxTextEdit.h"
#include "mGuiJob_global.h"
class iParameter;
class iGridResultItem;
class iGridResultUtils;
namespace Ui {
class iWxResult;
}
class M_GUI_JOB_EXPORT iWxResult : public iWxBase
{
Q_OBJECT
public:
// 这个各个子窗体在TabWx中的索引
// TODO 如果手工调整了顺序,需要对应进行修改本枚举的顺序
enum TabSubIndex
{
TSI_GridRst = 0,//GridResult
TSI_Simple, //Simple
TSI_NmRst, //NmRst
TSI_All, //All
TSI_Nm3D, //Nm3D
TSI_Temp, //Temp
TSI_Unknown
};
public:
explicit iWxResult(QWidget *parent = 0, \
TabSubIndex tsi = TSI_Unknown);
~iWxResult();
virtual void initSheets(); //Sheet
virtual void initUI();
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
// 这是显示的数据详细Tab页中的标题
// 而不是iWxResult本身的标题
void setTitle(QString s);
/// @brief 获取子窗口,为数值模块调用
QWidget* getSubWxOfNm(TabSubIndex tsi, bool bSetAsCurrent);
public:
// 返回TextEdit指针
QTextEdit* getTbxSimle();
QTextEdit* getTbxAll();
QTextEdit* getTbxTemp();
// 传入数据
void freshResults(QVector<iResultInfo>& vecResults);
//ZXF20240625 模型参数更新
void freshParams(QVector<iResultInfo>& vecResults);
// 追加式传入数据放在Temp的Tab页
void freshResult_t(QStringList listInfo, bool bWarning = false);
void clearResult_t();
// _o oneTab版
void freshResults_o(QVector<iResultInfo>& vecResults);
void clearResult_o();
// 结果对比调用,非常复杂
void freshResults_ResCp(QStringList& listTags,
QVector <QVector<iResultInfo> >& vvecInfosM,
QVector <QVector<iResultInfo> >& vvecInfosP,
QVector <QVector<iResultInfo> >& vvecInfosC);
// 填表
void _fillTableWith(QTextTable *pTableWx, \
QVector <QVector<iResultInfo> >* pVVec, \
bool bChart);
QString _getRandomType(QVector <QVector<iResultInfo> >* pVVec);
// 显示隐藏Tab
void setTabItemVisibleEx(TabSubIndex tsi, bool bVisible, \
bool bAutoAsCurrent = false);
signals:
// 上传
void sigUploadRstParas();
private slots:
void slotCustomMenu(QMenu* pMenu);
// 对GridRowUtils右键菜单进行调整
virtual void slotAdjustRstUtilContextMenu(QMenu*& pMenu, iGridResultItem* pItem);
private:
// 传入数据,刷新
// _g grid版新版
// _s 简易版
// _c详细版
void freshResults_g(QVector<iResultInfo>& vecResults);
void freshResults_s(QVector<iResultInfo>& vecResults);
void freshResults_c(QVector<iResultInfo>& vecResults);
// 解析得到类别
QStringList parseTypes(QVector<iResultInfo> & vec, bool bSimpleMode = false);
// 新的方式(只针对GridResult模式
void initSubUI_g();
void resetRstObjs_g();
void resetRstInfos_g();
void cacheRstInfos_g(QVector<iResultInfo>& vecResults);
void adjustRstInfos_g(QStringList listTypes);
QStringList parseTypes_g();
void fresh2RstUtils_g();
// 显示相关
void displayText(QTextCursor& cursor,
QString s,
Qt::AlignmentFlag oAln = Qt::AlignHCenter,
bool bBold = false,
bool bReturn = true,
bool bWarning = false);
QTextTable* createTableWithHeaders(QTextCursor& cursor, \
QStringList listTitles, \
bool bSimpleMode = false);
void displayTableHeaders(QTextTable* &pTableWx, \
QStringList listTitles);
// n = 0: s 1:c 2:o
void displayOneRow(QTextTable* &pTableWx, \
iResultInfo o, \
int n = 0);
protected:
virtual void paintEvent(QPaintEvent *);
private slots:
// 打印
void slotPrintResult_s();
void slotPrintResult_c();
void slotPrintResult_t();
void _printResultsOf(QTextEdit* p);
private:
Ui::iWxResult *ui;
// 这是显示的数据详细Tab页中的标题
// 而不是iWxResult本身的标题
QString m_sResTitle;
// 这是对Tab显示与隐藏的控制
// 非 TSI_Unknown 时仅仅显示特定的Tab页
// TSI_Unknown 时,所有
// 默认TSI_Unknown所有
TabSubIndex m_oTsi;
// 这是新的方式TODO需要增加序列化处理
QVector<iParameter*> m_vecAllObjs;//需要析构
QVector<iResultInfo*> m_vecGridRstInfos;
iGridResultUtils* m_pGridRstUtils;
QVBoxLayout* m_pGridRstLayout;
};