modify fit cureve dialog
This commit is contained in:
parent
32748eb36a
commit
06efe914f7
@ -175,6 +175,7 @@ void MainWindow::InitUI() {
|
|||||||
//ui->status->setText(tr("start: no start"));
|
//ui->status->setText(tr("start: no start"));
|
||||||
|
|
||||||
InitDockLayout();
|
InitDockLayout();
|
||||||
|
InitChartLayout();
|
||||||
|
|
||||||
//ui->viewWidget->layout()->addWidget(qtOsgViewWidget_);
|
//ui->viewWidget->layout()->addWidget(qtOsgViewWidget_);
|
||||||
qtOsgViewWidget_->LoadDefaultScene();
|
qtOsgViewWidget_->LoadDefaultScene();
|
||||||
@ -335,6 +336,97 @@ void MainWindow::AddDockArea(const QString& strArea) {
|
|||||||
resizeDocks(listAdd, listSpliter, orient);
|
resizeDocks(listAdd, listSpliter, orient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::InitChartLayout()
|
||||||
|
{
|
||||||
|
QString strChart = RecourceHelper::Get().GetBasePath() + "/workspace/Chart.xml";
|
||||||
|
m_mgrChart.Load(strChart);
|
||||||
|
|
||||||
|
QVariantList varList = m_mgrChart.GetChartWgt();
|
||||||
|
for (int nI = 0; nI < varList.size(); nI++)
|
||||||
|
{
|
||||||
|
QVariantMap mapWgt = varList.at(nI).toMap();
|
||||||
|
QString strWgt = mapWgt.begin().key();
|
||||||
|
QVariantList listChart = mapWgt.begin().value().toList();
|
||||||
|
|
||||||
|
QMainWindow* mainWindow_ = new QMainWindow;
|
||||||
|
connect(mainWindow_, &QMainWindow::tabifiedDockWidgetActivated, this, &MainWindow::OnTabifiedDockWidgetActivated);
|
||||||
|
|
||||||
|
int nCount = tabWidget_->count();
|
||||||
|
tabWidget_->insertTab(nCount, mainWindow_, strWgt);
|
||||||
|
|
||||||
|
QVariantMap varRows;
|
||||||
|
for (int nJ = 0; nJ < listChart.size(); nJ++)
|
||||||
|
{
|
||||||
|
QVariantMap mapChart = listChart.at(nJ).toMap();
|
||||||
|
int nRow = mapChart.value("row").toInt();
|
||||||
|
int nCol = mapChart.value("column").toInt();
|
||||||
|
QString strKey = QString::number(nRow) + "-" + QString::number(nCol);
|
||||||
|
varRows.insert(strKey, mapChart);
|
||||||
|
}
|
||||||
|
|
||||||
|
QDockWidget* lastRowDock = nullptr;
|
||||||
|
QDockWidget* lastColDock = nullptr;
|
||||||
|
int lastRow = -1;
|
||||||
|
int lastCol = -1;
|
||||||
|
for (QVariantMap::Iterator ite = varRows.begin(); ite != varRows.end(); ++ite)
|
||||||
|
{
|
||||||
|
QVariantMap mapChart = ite.value().toMap();
|
||||||
|
int nRow = mapChart.value("row").toInt();
|
||||||
|
int nCol = mapChart.value("column").toInt();
|
||||||
|
QString strName = mapChart.value("Name").toString();
|
||||||
|
QString xTitle = mapChart.value("xTitle").toString();
|
||||||
|
QString yTitle = mapChart.value("yTitle").toString();
|
||||||
|
float xMin = mapChart.value("xMin").toFloat();
|
||||||
|
float xMax = mapChart.value("xMax").toFloat();
|
||||||
|
int xCount = mapChart.value("xCount").toInt();
|
||||||
|
float yMin = mapChart.value("yMin").toFloat();
|
||||||
|
float yMax = mapChart.value("yMax").toFloat();
|
||||||
|
|
||||||
|
DockWidget* pDock = new DockWidget(strName, 0);
|
||||||
|
fitCurveDlg_ = new FitCurveDialog(1);
|
||||||
|
fitCurveDlg_->AttachDock(pDock);
|
||||||
|
fitCurveDlg_->updateTitle(xTitle, yTitle);
|
||||||
|
fitCurveDlg_->updateMinMaxX(xMin, xMax, xCount);
|
||||||
|
fitCurveDlg_->updateMinMaxY(yMin, yMax);
|
||||||
|
|
||||||
|
mainWindow_->addDockWidget(Qt::LeftDockWidgetArea, pDock);
|
||||||
|
|
||||||
|
if (lastRow > -1)
|
||||||
|
{
|
||||||
|
if (lastRow == nRow)
|
||||||
|
{
|
||||||
|
if (lastCol > -1)
|
||||||
|
{
|
||||||
|
if (lastCol != nCol)
|
||||||
|
{
|
||||||
|
mainWindow_->splitDockWidget(lastColDock, pDock, Qt::Horizontal);
|
||||||
|
}
|
||||||
|
lastColDock = pDock;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lastColDock = pDock;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//mainWindow_->splitDockWidget(lastRowDock, pDock, Qt::Vertical);
|
||||||
|
|
||||||
|
lastRowDock = pDock;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lastRowDock = pDock;
|
||||||
|
lastColDock = pDock;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastRow = nRow;
|
||||||
|
lastCol = nCol;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::OnTabifiedDockWidgetActivated(QDockWidget* dockWidget) {
|
void MainWindow::OnTabifiedDockWidgetActivated(QDockWidget* dockWidget) {
|
||||||
//if (dockWidget) {
|
//if (dockWidget) {
|
||||||
// QMainWindow* mainWindow = qobject_cast<QMainWindow*>(dockWidget->parentWidget());
|
// QMainWindow* mainWindow = qobject_cast<QMainWindow*>(dockWidget->parentWidget());
|
||||||
|
|||||||
@ -4,6 +4,8 @@
|
|||||||
#include <qdockwidget.h>
|
#include <qdockwidget.h>
|
||||||
#include <QMap>
|
#include <QMap>
|
||||||
|
|
||||||
|
#include "chartPlot/ChartXMLMgr.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
}
|
}
|
||||||
@ -47,6 +49,8 @@ private:
|
|||||||
void InitDockLayout();
|
void InitDockLayout();
|
||||||
void AddDockArea(const QString& strArea);
|
void AddDockArea(const QString& strArea);
|
||||||
|
|
||||||
|
void InitChartLayout();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void OnTabifiedDockWidgetActivated(QDockWidget* dockWidget);
|
void OnTabifiedDockWidgetActivated(QDockWidget* dockWidget);
|
||||||
|
|
||||||
@ -70,4 +74,5 @@ private:
|
|||||||
|
|
||||||
QMap<QString, QDockWidget*> m_mapDockWidget;
|
QMap<QString, QDockWidget*> m_mapDockWidget;
|
||||||
|
|
||||||
|
ChartXMLMgr m_mgrChart;
|
||||||
};
|
};
|
||||||
@ -681,6 +681,41 @@ void FitCurveDialog::InitReportFile(const QString& strFile, int iBatchCount)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FitCurveDialog::updateTitle(const QString & xTitle, const QString & yTitle)
|
||||||
|
{
|
||||||
|
if (m_pAxisX)
|
||||||
|
{
|
||||||
|
m_pAxisX->setTitleText(xTitle);
|
||||||
|
}
|
||||||
|
if (m_pAxisY)
|
||||||
|
{
|
||||||
|
m_pAxisY->setTitleText(yTitle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FitCurveDialog::updateMinMaxX(float min, float max, int count)
|
||||||
|
{
|
||||||
|
m_iXMin = min;
|
||||||
|
m_iXMax = max;
|
||||||
|
|
||||||
|
QList<QAbstractAxis*> axesX;
|
||||||
|
axesX = curveChart->axes(Qt::Horizontal);
|
||||||
|
QValueAxis* curAxisX = (QValueAxis*)axesX[0];
|
||||||
|
curAxisX->setRange(m_iXMin, m_iXMax);
|
||||||
|
curAxisX->setTickCount(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FitCurveDialog::updateMinMaxY(float min, float max)
|
||||||
|
{
|
||||||
|
m_iYMin = min;
|
||||||
|
m_iYMax = max;
|
||||||
|
|
||||||
|
QList<QAbstractAxis*> axesY;
|
||||||
|
axesY = curveChart->axes(Qt::Vertical);
|
||||||
|
QValueAxis* curAxisY = (QValueAxis*)axesY[0];
|
||||||
|
curAxisY->setRange(m_iYMin, m_iYMax);
|
||||||
|
}
|
||||||
|
|
||||||
bool FitCurveDialog::ParseWave(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecWavePoint, int iRowCount)
|
bool FitCurveDialog::ParseWave(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecWavePoint, int iRowCount)
|
||||||
{
|
{
|
||||||
if (strFile.isEmpty())
|
if (strFile.isEmpty())
|
||||||
|
|||||||
@ -28,6 +28,10 @@ public:
|
|||||||
void InitWaveFile(const QString& strFile, int iBatchCount = 50);
|
void InitWaveFile(const QString& strFile, int iBatchCount = 50);
|
||||||
void InitReportFile(const QString& strFile, int iBatchCount = 50);
|
void InitReportFile(const QString& strFile, int iBatchCount = 50);
|
||||||
|
|
||||||
|
void updateTitle(const QString& xTitle, const QString& yTitle);
|
||||||
|
void updateMinMaxX(float min, float max, int count);
|
||||||
|
void updateMinMaxY(float min, float max);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool ParseWave(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecWavePoint, int iRowCount = 50);
|
bool ParseWave(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecWavePoint, int iRowCount = 50);
|
||||||
bool ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
|
bool ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user