fix plot
This commit is contained in:
2026-02-14 14:31:02 +01:00
parent 4ba874fc15
commit 4371b711a5
4 changed files with 25 additions and 5 deletions
+6
View File
@@ -35,6 +35,12 @@ std::string UI_plot::y_label() const
return m_y_label; return m_y_label;
} }
void UI_plot::add_value(double y)
{
m_x_vals.push_back((double)m_x_vals.size());
m_y_vals.push_back(y);
}
void UI_plot::add_value(double x, double y) void UI_plot::add_value(double x, double y)
{ {
m_x_vals.push_back(x); m_x_vals.push_back(x);
+1
View File
@@ -20,6 +20,7 @@ class UI_plot : public UI_item
bool x_label_enabled() const; bool x_label_enabled() const;
void set_y_label_enabled(bool enabled); void set_y_label_enabled(bool enabled);
bool y_label_enabled() const; bool y_label_enabled() const;
void add_value(double y);
void add_value(double x, double y); void add_value(double x, double y);
void clean_vals(); void clean_vals();
+17 -4
View File
@@ -535,10 +535,13 @@ void Simulator_base::process_ui_plot(json &uiItem)
} }
QString text = QString::fromStdString(uiItem["text"]); QString text = QString::fromStdString(uiItem["text"]);
QColor bg_color = QColor(QString::fromStdString(uiItem["bg_color"]));
QColor color = QColor(QString::fromStdString(uiItem["fg_color"]));
QString x_label = QString::fromStdString(uiItem["x_label"]); QString x_label = QString::fromStdString(uiItem["x_label"]);
QString y_label = QString::fromStdString(uiItem["y_label"]); QString y_label = QString::fromStdString(uiItem["y_label"]);
std::vector<double> x_vals = (std::vector<double>)uiItem.at("x_vals"); std::vector<double> x_vals = (std::vector<double>)uiItem.at("x_vals");
std::vector<double> y_vals = (std::vector<double>)uiItem.at("x_vals"); std::vector<double> y_vals = (std::vector<double>)uiItem.at("y_vals");
if (text != plot->title().text()) if (text != plot->title().text())
{ {
@@ -555,9 +558,19 @@ void Simulator_base::process_ui_plot(json &uiItem)
plot->setAxisTitle(QwtAxis::YLeft, y_label); plot->setAxisTitle(QwtAxis::YLeft, y_label);
} }
plot->curve()->setRawSamples(x_vals.data(), y_vals.data(), x_vals.capacity()); if (color != plot->curve()->pen().color())
plot->setAxisScale(QwtAxis::XBottom, x_vals[x_vals.capacity() - 1], x_vals[0]); {
// plot_time[0], plot_time[api.get_plot_size() - 1] ); plot->curve()->setPen(QPen(color));
}
if (color == QColor(0x83, 0x91, 0x92))
{
plot->curve()->setPen(QPen(Qt::red));
}
plot->curve()->setSamples(x_vals.data(), y_vals.data(), x_vals.size());
if (x_vals.size() > 0)
plot->setAxisScale(QwtAxis::XBottom, x_vals[0], x_vals[x_vals.size() - 1]);
plot->replot(); plot->replot();
} }
+1 -1
View File
@@ -68,7 +68,7 @@ void Test_Sim::slider_changed(UI_slider *id, double value)
this->m_label.set_text(std::to_string(value)); this->m_label.set_text(std::to_string(value));
this->m_dial.set_value(value); this->m_dial.set_value(value);
this->m_thermo.set_value(value); this->m_thermo.set_value(value);
this->m_plot.add_value(value, value); this->m_plot.add_value(value);
return; return;
} }
} }