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