SedSat3 1.1.6
Sediment Source Apportionment Tool - Advanced statistical methods for environmental pollution research
Loading...
Searching...
No Matches
ProgressWindow.cpp
Go to the documentation of this file.
1#include "ProgressWindow.h"
2
3
4
5ProgressWindow::ProgressWindow(QWidget *parent, int number_of_panels, bool extra_label_and_progressbar)
6 : QDialog(parent)
7{
8 ui.setupUi(this);
9 ChartItems.resize(number_of_panels);
10 charttitles.resize(number_of_panels);
11 if (!extra_label_and_progressbar)
12 {
13 ui.progressBar_2->setVisible(false);
14 ui.label->setVisible(true);
15 }
16 else
17 {
18 ui.progressBar_2->setVisible(true);
19 ui.label->setVisible(true);
20 }
21
22 if (number_of_panels==0)
23 resize(475, 100);
24 for (int i=0; i<number_of_panels; i++)
25 {
26 ChartItems[i].series = new QLineSeries();
27 ChartItems[i].chart = new QChart();
28 ChartItems[i].chart->legend()->hide();
29 ChartItems[i].chart->setTitle("Optimization progress");
30 ChartItems[i].areaseries = new QAreaSeries(ChartItems[i].series);
31 ChartItems[i].chartView = new QChartView(ChartItems[i].chart);
32 ChartItems[i].chartView->setRenderHint(QPainter::Antialiasing);
33 ChartItems[i].chart->addSeries(ChartItems[i].areaseries);
34 ChartItems[i].chart->addSeries(ChartItems[i].series);
35
36 QPen pen(0x059605);
37 pen.setWidth(3);
38 ChartItems[i].series->setPen(pen);
39
40 QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1));
41 gradient.setColorAt(0.0, 0x3cc63c);
42 gradient.setColorAt(1.0, 0x26f626);
43 //gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
44 ChartItems[i].series->setBrush(gradient);
45 ChartItems[i].yaxis = new QValueAxis();
46 ChartItems[i].xaxis = new QValueAxis();
47
48 ChartItems[i].chart->addAxis(ChartItems[i].xaxis,Qt::AlignBottom);
49 ChartItems[i].chart->addAxis(ChartItems[i].yaxis,Qt::AlignLeft);
50 ChartItems[i].series->attachAxis(ChartItems[i].xaxis);
51 ChartItems[i].series->attachAxis(ChartItems[i].yaxis);
52 ChartItems[i].areaseries->attachAxis(ChartItems[i].xaxis);
53 ChartItems[i].areaseries->attachAxis(ChartItems[i].yaxis);
54 ui.verticalLayout_2->addWidget(ChartItems[i].chartView);
55 }
56
57
58}
59
60void ProgressWindow::SetTitle(const QString &title, int chart)
61{
62 ChartItems[chart].chart->setTitle(title);
63}
64
68
69void ProgressWindow::AppendPoint(const double& x, const double& y, int chart)
70{
71 if (ChartItems[chart].series->count()==0)
72 {
73 ChartItems[chart].yaxis->setMin(y-0.01);
74 ChartItems[chart].yaxis->setMax(y+0.01);
75 }
76 ChartItems[chart].series->append(x, y);
77 if (y<ChartItems[chart].yaxis->min())
78 ChartItems[chart].yaxis->setMin(y);
79 if (y>ChartItems[chart].yaxis->max())
80 ChartItems[chart].yaxis->setMax(y);
81 if (x<ChartItems[chart].xaxis->min())
82 ChartItems[chart].xaxis->setMin(x);
83 if (x>ChartItems[chart].xaxis->max())
84 ChartItems[chart].xaxis->setMax(x);
85 ChartItems[chart].chartView->update();
86
87}
88
90{
91 ChartItems[chart].series->clear();
92}
93
94void ProgressWindow::SetProgress(const double& prog)
95{
96 ui.progressBar->setValue(prog * 100);
97 QCoreApplication::processEvents();
98}
99
100void ProgressWindow::SetProgress2(const double& prog)
101{
102 ui.progressBar_2->setValue(prog * 100);
103 QCoreApplication::processEvents();
104}
105
106void ProgressWindow::SetLabel(const QString& label)
107{
108 ui.label->setText(label);
109 QCoreApplication::processEvents();
110}
111
112
113void ProgressWindow::SetYRange(const double &y0, const double &y1, int chart)
114{
115 ChartItems[chart].yaxis->setMin(y0);
116 ChartItems[chart].yaxis->setMax(y1);
117 ChartItems[chart].chartView->update();
118
119}
120
121void ProgressWindow::SetXRange(const double &x0, const double &x1, int chart)
122{
123 ChartItems[chart].xaxis->setMin(x0);
124 ChartItems[chart].xaxis->setMax(x1);
125 ChartItems[chart].xaxis->setTitleText("Generation");
126 ChartItems[chart].chartView->update();
127}
128
129void ProgressWindow::SetXAxisTitle(const QString &title, int chart)
130{
131 ChartItems[chart].xaxis->setTitleText(title);
132}
133void ProgressWindow::SetYAxisTitle(const QString &title, int chart)
134{
135 ChartItems[chart].yaxis->setTitleText(title);
136}
void SetProgress2(const double &prog)
void SetYAxisTitle(const QString &title, int chart=0)
ProgressWindow(QWidget *parent=Q_NULLPTR, int number_of_panels=1, bool extra_label_and_progressbar=false)
void AppendPoint(const double &x, const double &y, int chart=0)
void SetYRange(const double &y0, const double &y1, int chart=0)
void SetXRange(const double &x0, const double &x1, int chart=0)
Ui::ProgressWindow ui
QVector< ChartCollection > ChartItems
void SetProgress(const double &prog)
void ClearGraph(int chart=0)
void SetXAxisTitle(const QString &title, int chart=0)
void SetTitle(const QString &title, int chart=0)
QVector< QString > charttitles
void SetLabel(const QString &label)