test_sdk/gui/spgr/gtl_gui_spgr_line.cpp

46 lines
1.3 KiB
C++

#include "gtl_gui_spgr_line.h"
namespace gtl {
namespace gui
{
namespace spgr
{
line_widget::line_widget(QWidget* parent, ::chart::axis_horz* axis_x, ::chart::axis_vert* axis_y, gtl::analog_data* ad)
: QWidget(parent, Qt::Window)
,_series(nullptr)
,_chart(nullptr)
,_widget(nullptr)
{
_series = new gui::chart_series(ad, axis_x, axis_y);
_chart = new line_chart(this, static_cast<chart_axis_x*>(axis_x), static_cast<chart_axis_y*>(axis_y));
_chart->add(_series);
_widget = new gui::chart_widget(_chart, this);
setLayout(new QVBoxLayout);
layout()->setContentsMargins(0, 0, 0, 0);
layout()->setSpacing(0);
layout()->addWidget(_widget);
}
line_widget::~line_widget()
{
_chart->remove();
if(_widget) delete _widget;
emit deleted();
}
void line_widget::set_data(qreal* values, qreal size, qreal dx)
{
if(_series) _series->set_y(values, size, dx);
}
void line_widget::closeEvent(QCloseEvent *event)
{
emit closed();
}
}
}
}