#include "statisticsdialog.h" #include "ui_statisticsdialog.h" #include #include #include StatisticsDialog::StatisticsDialog(const std::vector& data, QWidget *parent): QDialog(parent), ui(new Ui::StatisticsDialog) { ui->setupUi(this); connect(ui->pushButton_1, &QPushButton::clicked, this, &StatisticsDialog::copyCount); connect(ui->pushButton_4, &QPushButton::clicked, this, &StatisticsDialog::copyMean); connect(ui->pushButton_5, &QPushButton::clicked, this, &StatisticsDialog::copyMinMax); connect(ui->pushButton_Sd, &QPushButton::clicked, this, &StatisticsDialog::copySd); ui->lcdNumber_Count->display(static_cast(data.size())); double mean = 0; double max = std::numeric_limits::min(); double min = std::numeric_limits::max(); for(double point : data) { mean += point; if(point < min) min = point; if(point > max) max = point; } mean = mean / data.size(); ui->lcdNumber_Mean->display(mean); double sd = 0; for(double point : data) { sd += (point - mean)*(point - mean); } sd /= data.size(); sd = sqrt(sd); ui->lcdNumber_Sd->display(sd); ui->lcdNumber_Max->display(max); ui->lcdNumber_Min->display(min); } void StatisticsDialog::copyCount() { QString buffer(QString::number(ui->lcdNumber_Count->value(), 'g', 10)); QGuiApplication::clipboard()->setText(buffer, QClipboard::Clipboard); QGuiApplication::clipboard()->setText(buffer, QClipboard::Selection); } void StatisticsDialog::copyMean() { QString buffer(QString::number(ui->lcdNumber_Mean->value(), 'g', 10)); QGuiApplication::clipboard()->setText(buffer, QClipboard::Clipboard); QGuiApplication::clipboard()->setText(buffer, QClipboard::Selection); } void StatisticsDialog::copyMinMax() { QString buffer(QString::number(ui->lcdNumber_Min->value(), 'g', 10)); buffer.append(","); buffer.append(QString::number(ui->lcdNumber_Max->value(), 'g', 10)); QGuiApplication::clipboard()->setText(buffer, QClipboard::Clipboard); QGuiApplication::clipboard()->setText(buffer, QClipboard::Selection); } void StatisticsDialog::copySd() { QString buffer(QString::number(ui->lcdNumber_Sd->value(), 'g', 10)); QGuiApplication::clipboard()->setText(buffer, QClipboard::Clipboard); QGuiApplication::clipboard()->setText(buffer, QClipboard::Selection); } StatisticsDialog::~StatisticsDialog() { delete ui; }