У меня есть класс TimeGraph с qwtplot. Этот qwtplot отображается в QGraphicsView. qwtplot имеет метод изменения размера en resizeEvent, но я не понимаю, как их использовать.QwtPlot on QGraphicsView resize
TimeGraph::TimeGraph(QWidget* parent, int in_display_time, QwtText title)
{
display_time = in_display_time;
graph.setParent(parent);
graph.setFixedSize(parent->width() - 20, parent->height() - 20);
graph.move(QPoint(10, 10));
grid.attach(&graph);
curve.attach(&graph);
curve.setPen(QPen(Qt::red, 2));
curve.setRenderHint(QwtPlotItem::RenderAntialiased);
if (title.text() != NULL)
graph.setTitle(title);
graph.setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(QDateTime(QDate(0, 0, 0), QTime(0, 0, 0, 0))));
graph.setAxisScale(QwtPlot::xBottom, - display_time, 0);
graph.setAxisLabelRotation(QwtPlot::xBottom, -20.0);
graph.setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
graph.show();
}
И заголовок
struct Data { QVector<double> x; QVector<double> y;};
class TimeGraph
{
private :
QwtPlot graph;
QwtPlotCurve curve;
QwtPlotGrid grid;
Data data;
int display_time;
public:
TimeGraph(QWidget* parent, int in_display_time, QwtText title = QwtText());
void addPoint(QDateTime date, double y);
void resize(QRect zone);
};
Я создаю мой график, как это:
graph_O2 = новый TimeGraph (ui-> graphicsView_graph_o2, 120);
Я бы изменил размер графика при изменении размера графика. Как я могу это сделать?
Нет, график qwt действительно не должен быть на QGraphicsWiew. Но я не знаю, как это сделать. Мой qwt-график должен быть создан кодом, потому что plugin qwt для QtDesigner не работает с моей версией. Без QGraphicsView, как разместить мой участок в QGroupBox, где я хочу? – artoon
Я сделал еще один ответ с образцом (см. Выше) – evilruff
Хорошо, у меня есть мой TimeGraph в моем виджете. Теперь мой класс TimeGraph должен унаследовать QWidget? и переопределить paintEvent? – artoon