1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #include "scope.h"
- #include "ui_scope.h"
- #include <QGraphicsScene>
- #include <QValueAxis>
- #include <QLineSeries>
- #include <QChart>
- scope::scope(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::scope)
- {
- ui->setupUi(this);
- QStandardItemModel* model = treeModel->tree_set();
- ui->tree_set->setModel(model);
- ui->tree_set->expandAll();
-
- connect(ui->tree_set, &QTreeView::clicked, this, &scope::handleTreeItemClicked);
- }
- scope::~scope()
- {
- delete ui;
- }
- void scope::setTreeModel(tree_model_set* model)
- {
- treeModel = model;
- }
- void scope::handleTreeItemClicked(const QModelIndex &index) {
-
- emit treeItemClicked(index);
- }
- void scope::Chart_Init()
- {
-
- chart = new QChart();
- lineSeries = new QSplineSeries();
- lineSeries->setName("测试曲线");
- chart->addSeries(lineSeries);
-
- QValueAxis *axisX = new QValueAxis();
- QValueAxis *axisY = new QValueAxis();
- axisX->setRange(0, MAX_X);
- axisY->setRange(-1.5, MAX_Y);
- axisX->setTickCount(10);
- axisY->setTickCount(10);
- QFont font("Microsoft YaHei", 8, QFont::Normal);
- axisX->setTitleFont(font);
- axisY->setTitleFont(font);
- axisX->setTitleText("X-Test");
- axisY->setTitleText("Y-Test");
- axisY->setGridLineVisible(false);
- chart->addAxis(axisX, Qt::AlignBottom);
- chart->addAxis(axisY, Qt::AlignLeft);
- lineSeries->attachAxis(axisX);
- lineSeries->attachAxis(axisY);
-
- QGraphicsScene *scene = new QGraphicsScene(this);
- scene->addItem(chart);
-
- ui->gra_scope11->setScene(scene);
- ui->gra_scope11->setRenderHint(QPainter::Antialiasing);
-
- ui->gra_scope11->fitInView(scene->itemsBoundingRect(), Qt::KeepAspectRatio);
-
- QRectF viewRect = ui->gra_scope11->viewport()->rect();
- chart->resize(viewRect.width(), viewRect.height());
-
- ui->gra_scope11->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- }
- void scope::DrawLine(float data)
- {
- static int count = 0;
- if(count > MAX_X)
- {
-
- lineSeries->removePoints(0,lineSeries->count() - MAX_X);
-
- chart->axisX()->setMin(count - MAX_X);
- chart->axisX()->setMax(count);
- }
-
- lineSeries->append(count, data);
- count ++;
- }
|