update chart window less frequently than updating data. interval set in preferences
This commit is contained in:
@ -33,6 +33,7 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSpacerItem>
|
#include <QSpacerItem>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
|
#include <QTime>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QValueAxis>
|
#include <QValueAxis>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
@ -337,16 +338,24 @@ ChartViewer::ChartViewer(const QString &title, int _index, QWidget *parent) :
|
|||||||
setRenderHint(QPainter::Antialiasing);
|
setRenderHint(QPainter::Antialiasing);
|
||||||
setChart(chart);
|
setChart(chart);
|
||||||
setRubberBand(QChartView::RectangleRubberBand);
|
setRubberBand(QChartView::RectangleRubberBand);
|
||||||
|
last_update = QTime::currentTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
void ChartViewer::add_data(int step, double data)
|
void ChartViewer::add_data(int step, double data)
|
||||||
{
|
{
|
||||||
|
QSettings settings;
|
||||||
|
auto updchart = settings.value("updchart", "500").toInt();
|
||||||
|
|
||||||
if (last_step < step) {
|
if (last_step < step) {
|
||||||
last_step = step;
|
last_step = step;
|
||||||
|
|
||||||
series->append(step, data);
|
series->append(step, data);
|
||||||
reset_zoom();
|
if (last_update.msecsTo(QTime::currentTime()) > updchart) {
|
||||||
|
last_update = QTime::currentTime();
|
||||||
|
reset_zoom();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QTime>
|
||||||
|
|
||||||
class QAction;
|
class QAction;
|
||||||
class QCloseEvent;
|
class QCloseEvent;
|
||||||
@ -100,6 +101,7 @@ private:
|
|||||||
QLineSeries *series;
|
QLineSeries *series;
|
||||||
QValueAxis *xaxis;
|
QValueAxis *xaxis;
|
||||||
QValueAxis *yaxis;
|
QValueAxis *yaxis;
|
||||||
|
QTime last_update;
|
||||||
};
|
};
|
||||||
} // namespace QtCharts
|
} // namespace QtCharts
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -250,26 +250,33 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa
|
|||||||
connect(pluginbrowse, &QPushButton::released, this, &GeneralTab::pluginpath);
|
connect(pluginbrowse, &QPushButton::released, this, &GeneralTab::pluginpath);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto *fontlayout = new QHBoxLayout;
|
auto *gridlayout = new QGridLayout;
|
||||||
auto *getallfont =
|
auto *getallfont =
|
||||||
new QPushButton(QIcon(":/icons/preferences-desktop-font.png"), "Select Default Font...");
|
new QPushButton(QIcon(":/icons/preferences-desktop-font.png"), "Select Default Font...");
|
||||||
auto *gettextfont =
|
auto *gettextfont =
|
||||||
new QPushButton(QIcon(":/icons/preferences-desktop-font.png"), "Select Text Font...");
|
new QPushButton(QIcon(":/icons/preferences-desktop-font.png"), "Select Text Font...");
|
||||||
fontlayout->addWidget(getallfont);
|
gridlayout->addWidget(getallfont, 0, 0);
|
||||||
fontlayout->addWidget(gettextfont);
|
gridlayout->addWidget(gettextfont, 0, 1);
|
||||||
connect(getallfont, &QPushButton::released, this, &GeneralTab::newallfont);
|
connect(getallfont, &QPushButton::released, this, &GeneralTab::newallfont);
|
||||||
connect(gettextfont, &QPushButton::released, this, &GeneralTab::newtextfont);
|
connect(gettextfont, &QPushButton::released, this, &GeneralTab::newtextfont);
|
||||||
|
|
||||||
auto *freqlayout = new QHBoxLayout;
|
auto *freqlabel = new QLabel("Data update interval (ms)");
|
||||||
auto *freqlabel = new QLabel("GUI update interval (ms)");
|
|
||||||
auto *freqval = new QSpinBox;
|
auto *freqval = new QSpinBox;
|
||||||
freqval->setRange(1, 1000);
|
freqval->setRange(1, 1000);
|
||||||
freqval->setStepType(QAbstractSpinBox::AdaptiveDecimalStepType);
|
freqval->setStepType(QAbstractSpinBox::AdaptiveDecimalStepType);
|
||||||
freqval->setValue(settings->value("updfreq", "10").toInt());
|
freqval->setValue(settings->value("updfreq", "10").toInt());
|
||||||
freqval->setObjectName("updfreq");
|
freqval->setObjectName("updfreq");
|
||||||
freqlayout->addWidget(freqlabel);
|
gridlayout->addWidget(freqlabel, 1, 0);
|
||||||
freqlayout->addWidget(freqval);
|
gridlayout->addWidget(freqval, 1, 1);
|
||||||
freqlayout->addStretch(1);
|
|
||||||
|
auto *chartlabel = new QLabel("Charts update interval (ms)");
|
||||||
|
auto *chartval = new QSpinBox;
|
||||||
|
chartval->setRange(1, 5000);
|
||||||
|
chartval->setStepType(QAbstractSpinBox::AdaptiveDecimalStepType);
|
||||||
|
chartval->setValue(settings->value("updchart", "500").toInt());
|
||||||
|
chartval->setObjectName("updchart");
|
||||||
|
gridlayout->addWidget(chartlabel, 2, 0);
|
||||||
|
gridlayout->addWidget(chartval, 2, 1);
|
||||||
|
|
||||||
layout->addWidget(echo);
|
layout->addWidget(echo);
|
||||||
layout->addWidget(cite);
|
layout->addWidget(cite);
|
||||||
@ -283,8 +290,7 @@ GeneralTab::GeneralTab(QSettings *_settings, LammpsWrapper *_lammps, QWidget *pa
|
|||||||
layout->addWidget(pluginlabel);
|
layout->addWidget(pluginlabel);
|
||||||
layout->addLayout(pluginlayout);
|
layout->addLayout(pluginlayout);
|
||||||
#endif
|
#endif
|
||||||
layout->addLayout(fontlayout);
|
layout->addLayout(gridlayout);
|
||||||
layout->addLayout(freqlayout);
|
|
||||||
layout->addStretch(1);
|
layout->addStretch(1);
|
||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user