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"));
|
||||
|
||||
InitDockLayout();
|
||||
InitChartLayout();
|
||||
|
||||
//ui->viewWidget->layout()->addWidget(qtOsgViewWidget_);
|
||||
qtOsgViewWidget_->LoadDefaultScene();
|
||||
@ -335,6 +336,97 @@ void MainWindow::AddDockArea(const QString& strArea) {
|
||||
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) {
|
||||
//if (dockWidget) {
|
||||
// QMainWindow* mainWindow = qobject_cast<QMainWindow*>(dockWidget->parentWidget());
|
||||
|
||||
@ -4,6 +4,8 @@
|
||||
#include <qdockwidget.h>
|
||||
#include <QMap>
|
||||
|
||||
#include "chartPlot/ChartXMLMgr.h"
|
||||
|
||||
namespace Ui {
|
||||
class MainWindow;
|
||||
}
|
||||
@ -47,6 +49,8 @@ private:
|
||||
void InitDockLayout();
|
||||
void AddDockArea(const QString& strArea);
|
||||
|
||||
void InitChartLayout();
|
||||
|
||||
protected:
|
||||
void OnTabifiedDockWidgetActivated(QDockWidget* dockWidget);
|
||||
|
||||
@ -70,4 +74,5 @@ private:
|
||||
|
||||
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)
|
||||
{
|
||||
if (strFile.isEmpty())
|
||||
|
||||
@ -28,6 +28,10 @@ public:
|
||||
void InitWaveFile(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:
|
||||
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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user