#ifndef GRAFICK_H#define GRAFICK_H#include <QDialog>#include "qcustomplot.h"namespace Ui {class Grafick;}class Grafick : public QDialog{ Q_OBJECTpublic: explicit Grafick(QWidget *parent = 0); ~Grafick(); //Таймер, запускается когда создастся окно //Vector x,y //Vector x2,y2; //окно создаем когда на главном окне нажата кнопка??public slots: void insertItem(double iT); void startReaction_funkc();private: QCustomPlot *customplot; QCPGraph *graphic; // Объявляем график double startReaction; //double timeCur=0;private: Ui::Grafick *ui;};#endif // GRAFICK_H
#include "grafick.h"#include "ui_grafick.h"#include "mainwindow.h"#include <QDebug>double timeCur=0;Grafick::Grafick(QWidget *parent) : QDialog(parent), ui(new Ui::Grafick){ ui->setupUi(this); /*QVector<double> x(100), y(100); for(int i = 0; i < 100; i++){ x[i] = i; y[i] = x[i]; }*/ customplot=new QCustomPlot(); customplot->setInteraction(QCP::iRangeZoom,true); // Включаем взаимодействие удаления/приближения customplot->setInteraction(QCP::iRangeDrag, true); // Включаем взаимодействие перетаскивания графика customplot->axisRect()->setRangeDrag(Qt::Horizontal); // Включаем перетаскивание только по горизонтальной оси customplot->axisRect()->setRangeZoom(Qt::Horizontal); // Включаем удаление/приближение только по горизонтальной оси customplot->xAxis->setTickLabelType(QCPAxis::ltDateTime); // Подпись координат по Оси X в качестве Даты и Времени customplot->xAxis->setDateTimeFormat("hh:mm"); // Устанавливаем формат даты и времени // Настраиваем шрифт по осям координат customplot->xAxis->setTickLabelFont(QFont(QFont().family(), 8)); customplot->yAxis->setTickLabelFont(QFont(QFont().family(), 8)); // Автоматическое масштабирование тиков по Оси X //customplot->xAxis->setAutoTickStep(true); /* Делаем видимыми оси X и Y по верхней и правой границам графика, но отключаем на них тики и подписи координат*/ customplot->xAxis2->setVisible(true); customplot->yAxis2->setVisible(true); customplot->xAxis2->setTicks(false); customplot->yAxis2->setTicks(false); customplot->xAxis2->setTickLabels(false); customplot->yAxis2->setTickLabels(false); customplot->yAxis->setRange(0, 100); customplot->yAxis->setRange(0, 300); customplot->yAxis->setTickLabelColor(QColor(Qt::red)); // Красный цвет подписей тиков по Оси Y customplot->legend->setVisible(true); //Включаем Легенду графика // Устанавливаем Легенду в левый верхний угол графика customplot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignLeft|Qt::AlignTop); // Инициализируем график и привязываем его к Осям graphic = new QCPGraph(customplot->xAxis, customplot->yAxis); customplot->addPlottable(graphic); // Устанавливаем график на полотно graphic->setName("Температура, Т"); // Устанавливаем graphic->setPen(QPen(QColor(Qt::red))); // Устанавливаем цвет графика graphic->setAntialiased(false); // Отключаем сглажzxvb ивание, по умолчанию включено graphic->setLineStyle(QCPGraph::lsImpulse); // График в виде импульсных тиков ui->gridLayout->addWidget(customplot,0,0,1,1); //customplot->graph(0)->setData(x, y); // Устанавливаем данные //customplot->rescaleAxes(); // Масштабируем график по данным //customplot->yAxis->setRange(0, 300); //customplot->replot();}Grafick::~Grafick(){ delete ui;}void Grafick::insertItem(double iT){ static QTime timeWork=QTime::currentTime(); double workTime=timeWork.elapsed()/1000; timeCur=workTime; customplot->graph(0)->addData(workTime, iT); customplot->xAxis->setRange(workTime, 10, Qt::AlignRight); //customplot->rescaleAxes(); qDebug()<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! StartReaction: "<<startReaction<<"\n"; customplot->replot();}void Grafick::startReaction_funkc(){ startReaction=timeCur; qDebug()<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! StartReaction: "<<startReaction<<"\n";}
C++ (Qt)class Grafick : public QDialog{ ... double timeCur=0; ...};
C++ (Qt)class Grafick : public QDialog{ ... double timeCur; ...};