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.
nmWATI/Src/nmNum/nmSubWxs/nmWxNewNormalDlg.cpp

148 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.

#include "nmWxNewNormalDlg.h"
#include <QFormLayout>
#include <QScrollArea>
#include <QLabel>
#include <QLineEdit>
#include <QCheckBox>
#include <QPushButton>
#include <QDebug>
#include <QVBoxLayout>
#include <QListWidget>
#include "nmData/nmDataLogFile.h"
#include "nmData/nmDataDemo.h"
#include "nmData/nmDefines.h"
#include "ZxResolutionHelper.h"
#include "zxLogInstance.h"
#include "ZxDataObjectDbl.h"
nmWxNewNormalDlg::nmWxNewNormalDlg(nmDataDemo* dataPtr)
{
this->m_pAnalyzeData = nmDataDemo::getInstance();
m_pMainLayout = NULL;
m_pNameEdit = NULL;
m_pCheckboxWater = NULL;
m_pCheckboxOil = NULL;
m_pCheckboxGas = NULL;
this->setWindowTitle("New Analyze");
this->initUI();
this->setMinimumSize(QSize(_resoSizeW(400), _resoSizeW(200)));
}
nmWxNewNormalDlg::~nmWxNewNormalDlg()
{
}
void nmWxNewNormalDlg::initUI()
{
nmDataLogFile::getInstance()->writeLog("initUI nmNewDlg");
m_pMainLayout = new QVBoxLayout();
Q_ASSERT (NULL != m_pMainLayout);
m_pMainLayout->setSpacing(20);
m_pMainLayout->setMargin(5);
m_pMainLayout->setSizeConstraint(QVBoxLayout::SetMinAndMaxSize);
//以ScrollArea来显示,出现滚动条
{
QWidget* pWxBk = new QWidget();
Q_ASSERT (NULL != pWxBk);
pWxBk->setContextMenuPolicy(Qt::CustomContextMenu);
pWxBk->setAutoFillBackground(true);
pWxBk->setLayout(m_pMainLayout);
// Area,设置Widget
QScrollArea* pArea = new QScrollArea();
pArea->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
pArea->setWidgetResizable(true);
pArea->setWidget(pWxBk);
pArea->setContextMenuPolicy(Qt::CustomContextMenu);//*/
// Layout, 设置Area。
QVBoxLayout* pLayoutBk = new QVBoxLayout();
pLayoutBk->setSpacing(0);
pLayoutBk->setMargin(0);
pLayoutBk->addWidget(pArea);
setLayout(pLayoutBk);
}
this->renderComponents();
}
void nmWxNewNormalDlg::renderComponents()
{
// TODO渲染新建分析需要的组件
QFormLayout* fLayout = new QFormLayout;
// 创建标签和输入框
// Job名称
QLabel *nameLabel = new QLabel("Job name:");
m_pNameEdit = new QLineEdit();
// 相态选择
QLabel *phaseLabel = new QLabel("Phase selection:");
// 创建三个三态复选框
QHBoxLayout *phaseLayout = new QHBoxLayout;
m_pCheckboxOil = new QCheckBox("Oil");
m_pCheckboxGas = new QCheckBox("Gas");
m_pCheckboxWater = new QCheckBox("Water");
phaseLayout->addWidget(m_pCheckboxOil);
phaseLayout->addWidget(m_pCheckboxGas);
phaseLayout->addWidget(m_pCheckboxWater);
// 将标签和输入框添加到表单布局中
fLayout->addRow(nameLabel, m_pNameEdit);
fLayout->addRow(phaseLabel, phaseLayout);
// 添加到主框架上
m_pMainLayout->addLayout(fLayout);
// PVT和相渗选择
// QHBoxLayout* hLayout = new QHBoxLayout;
QGridLayout* gLayout = new QGridLayout;
gLayout->setMargin(0);
gLayout->setSpacing(2);
m_pMainLayout->addLayout(gLayout);
// 底部按钮
QHBoxLayout* hLayout = new QHBoxLayout;
QPushButton* saveBT = new QPushButton("Save");
QPushButton* cancelBT = new QPushButton("Cancel");
connect(saveBT, SIGNAL(clicked()), this, SLOT(on_save()));
connect(cancelBT, SIGNAL(clicked()), this, SLOT(reject()));
hLayout->addStretch();
hLayout->addWidget(saveBT);
hLayout->addWidget(cancelBT);
m_pMainLayout->addLayout(hLayout);
nmDataLogFile::getInstance()->writeLog("renderComponents nmNewDlg!!!");
}
void nmWxNewNormalDlg::on_save()
{
nmDataLogFile::getInstance()->writeLog("on_save nmNewDlg!!!");
// TODO判断是否设置了名称
QString analyzeName = m_pNameEdit->text().trimmed();
if (analyzeName.length() == 0) {
QMessageBox::information(NULL, zxAppID, QObject::tr("name is empty"));
return;
} else {
if (m_pAnalyzeData != NULL) {
m_pAnalyzeData->setAnalyzeName(analyzeName);
} else {
QMessageBox::information(NULL, zxAppID, QObject::tr("m_pAnalyzeData is NULL"));
}
}
// TODO判断是否设置了多相流
QList<NM_PHASE_TYPE> phaseList;
if (m_pCheckboxOil->isChecked()) {
phaseList.append(NM_PHASE_TYPE::PHASE_Oil);
}
if (m_pCheckboxGas->isChecked()) {
phaseList.append(NM_PHASE_TYPE::PHASE_Gas);
}
if (m_pCheckboxWater->isChecked()) {
phaseList.append(NM_PHASE_TYPE::PHASE_Water);
}
if (phaseList.length() == 0) {
QMessageBox::information(NULL, zxAppID, QObject::tr("phase is empty"));
return;
} else {
m_pAnalyzeData->setAnalyzeMultiphase(phaseList);
}
//// TODO判断是否设置了PVT
//m_pAnalyzeData->setAnalyzePVTIndex(m_pvtListWidget->currentRow());
//// TODO判断是否设置了相渗
//m_pAnalyzeData->setAnalyzeIIIndex(m_iiListWidget->currentRow());
this->accept();
}