89 lines
2.3 KiB
C++
89 lines
2.3 KiB
C++
/* -*- c++ -*- ----------------------------------------------------------
|
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
|
https://www.lammps.org/, Sandia National Laboratories
|
|
LAMMPS development team: developers@lammps.org
|
|
|
|
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
|
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
|
certain rights in this software. This software is distributed under
|
|
the GNU General Public License.
|
|
|
|
See the README file in the top-level LAMMPS directory.
|
|
------------------------------------------------------------------------- */
|
|
|
|
#ifndef CHARTVIEWER_H
|
|
#define CHARTVIEWER_H
|
|
|
|
#include <QList>
|
|
#include <QString>
|
|
#include <QWidget>
|
|
#include <QtCharts>
|
|
|
|
class QAction;
|
|
class QMenuBar;
|
|
class QMenu;
|
|
class QComboBox;
|
|
class ChartViewer;
|
|
|
|
class ChartWindow : public QWidget {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ChartWindow(const QString &filename, QWidget *parent = nullptr);
|
|
|
|
bool has_charts() const { return !charts.isEmpty(); }
|
|
void add_chart(const QString &title, int index);
|
|
void add_data(int step, double data, int index);
|
|
|
|
private slots:
|
|
void saveAs();
|
|
void exportDat();
|
|
void exportCsv();
|
|
|
|
void change_chart(int index);
|
|
|
|
protected:
|
|
void closeEvent(QCloseEvent *event) override;
|
|
|
|
private:
|
|
QMenuBar *menu;
|
|
QMenu *file;
|
|
QComboBox *columns;
|
|
QAction *saveAsAct;
|
|
QAction *exportCsvAct;
|
|
QAction *exportDatAct;
|
|
QAction *closeAct;
|
|
|
|
QString filename;
|
|
int active_chart;
|
|
QList<ChartViewer *> charts;
|
|
};
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
|
|
class ChartViewer : public QtCharts::QChartView {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ChartViewer(const QString &title, int index, QWidget *parent = nullptr);
|
|
|
|
void add_data(int step, double data);
|
|
int get_index() const { return index; };
|
|
int get_count() const { return series->count(); }
|
|
const char *get_title() const { return series->name().toLocal8Bit(); }
|
|
double get_step(int index) const { return series->at(index).x(); }
|
|
double get_data(int index) const { return series->at(index).y(); }
|
|
|
|
private:
|
|
int last_step, index;
|
|
QtCharts::QChart *chart;
|
|
QtCharts::QLineSeries *series;
|
|
QtCharts::QValueAxis *xaxis;
|
|
QtCharts::QValueAxis *yaxis;
|
|
};
|
|
#endif
|
|
|
|
// Local Variables:
|
|
// c-basic-offset: 4
|
|
// End:
|