#ifndef GTL_GUI_SPGR_WIDGET_H #define GTL_GUI_SPGR_WIDGET_H #include #include "qpainter.h" #include "math/gtl_math_spec.h" #include "gui/spgr/gtl_gui_spgr_series.h" #include "gui/spgr/gtl_gui_spgr_chart.h" #include "gui/gui_global.h" namespace Ui { class spgr_widget; } namespace gtl { namespace gui { namespace spgr { class GTL_GUI_EXPORT gradient_widget : public QWidget { Q_OBJECT public: gradient_widget(QWidget *parent) : QWidget(parent){} void paintEvent(QPaintEvent *) { QPainter painter(this); QLinearGradient gradient(0, 0, width(), 0); gradient.setColorAt(0, Qt::blue); gradient.setColorAt(0.25, Qt::cyan); gradient.setColorAt(0.5, Qt::green); gradient.setColorAt(0.75, Qt::yellow); gradient.setColorAt(1, Qt::red); painter.setBrush(gradient); painter.drawRect(rect()); } }; class GTL_GUI_EXPORT widget : public QWidget { Q_OBJECT public: explicit widget(QWidget *parent, gtl::math::spec *spec); ~widget(); line_widget* time_widget(); line_widget* freq_widget(); private: Ui::spgr_widget *ui; QDomElement* _root_element; series* _series; chart* _chart; void update_parameters(); void closeEvent(QCloseEvent *event); signals: void closed(); void deleted(); void time_chart_changed(); void freq_chart_changed(); }; } } } #endif // GTL_GUI_SPGR_WIDGET_H