#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); bt = new Bluetooth1d801(this); //конструктор для графика auto series = new QLineSeries; //QLineSeries - делает массив точек для графиков. умеет append например for (int i = 0; i < 500; i++) { //иииии вцикле QPointF p(i, qSin(M_PI / 50 * i) * 100); // делаем точку c координатами в конструкторе // p.ry() += QRandomGenerator::global()->bounded(20); *series << p; // и приздяцим её в массив } // и так по кругу chart = new Chart; //новый график chart->addSeries(series); // закидываем ему массив точек // функция унаследована, есть еще removeAllSeries //chart->setTitle("Zoom in/out example"); chart->createDefaultAxes(); chart->setAnimationOptions(QChart::SeriesAnimations); chart->legend()->hide(); // скрыть легенду, в моем случае бесячую точку auto chartView = new ChartView(chart); // на основе точек создаем обьект chartView->setRenderHint(QPainter::Antialiasing); // this->setCentralWidget(chartView);// эта шляпа растягивает chartview на весь окно ui->horizontalLayout->addWidget(chartView); // добавляем виджет //конец конструктора для графика } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButtonSearch_clicked() { bt->startDiscovery(); // запускаем поиск connect( // забираем найденые результаты bt, &Bluetooth1d801::discoveryResult, this, &MainWindow::addDiscoveryResult ); } void MainWindow::on_pushButtonConnect_clicked() { qDebug()<< "Нажал кнопочку...)"; } void MainWindow::on_pushButtonGetParam_clicked() { } void MainWindow::addDiscoveryResult(QListWidgetItem *res_p) { ui->listWidgetDevice->addItem(res_p); } void MainWindow::addRawData(QByteArray data) { ui->listWidgetResponse->addItem(data.toHex()); } void MainWindow::on_listWidgetDevice_itemDoubleClicked(QListWidgetItem *item) { if(!bt){ qDebug() << "телега пошла вперед лошади, сливай воду"; return; } bt->connectTo(item); connect( // забираем сырые ответы bt, &Bluetooth1d801::rawDataRecived, this, &MainWindow::addRawData ); } void MainWindow::on_pushButtonClearCharts_clicked() { chart->removeAllSeries(); } void MainWindow::on_pushButton_clicked() { auto series = new QLineSeries; //QLineSeries - делает массив точек для графиков. умеет append например for (int i = 0; i < 500; i++) { //иииии вцикле QPointF p(i, QRandomGenerator::global()->bounded(100)); // делаем точку c координатами в конструкторе *series << p; // и приздяцим её в массив } // и так по кругу chart->addSeries(series); }