From 85fe60b81f112dc15eccbf1863e0446c5b16cd46 Mon Sep 17 00:00:00 2001 From: zcy Date: Mon, 15 Jan 2024 18:04:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B9=B3=E5=9D=87=E5=80=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- global.h | 59 ++++++++++- mainwindow.cpp | 1 - sub.ui | 25 ++++- subform.cpp | 275 +++++++++++++++++++++++++++++++++++++++++++++---- subform.h | 19 +++- untitled.pro | 2 +- 6 files changed, 355 insertions(+), 26 deletions(-) diff --git a/global.h b/global.h index 51a0dbc..7389d17 100644 --- a/global.h +++ b/global.h @@ -16,6 +16,8 @@ extern "C"{ # pragma execution_character_set("utf-8") #endif +extern float gOffset[20]; + typedef struct { @@ -86,7 +88,10 @@ public: float x = 0; while(mRuning){ int count = 0; - + if(mPause){ + QThread::msleep(10); + continue; + } for(int it = 0;it < mConf.size();it++) { auto itr = mConf.at(it); @@ -121,6 +126,56 @@ public: for(int i =0;i < resp_length;i++){ log += QString::asprintf("0x%02x ",rsp[i]); } + log += "\r\n流速: "; + float tmp = 0; + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[0]*1000; + + if((tmp > 0)&&(float(tmp<= 200))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[0]*1000; + }else if((tmp > 200)&&((tmp<= 400))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[1]*1000; + }else if((tmp > 400)&&((tmp<= 600))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[2]*1000; + }else if((tmp > 600)&&((tmp<= 800))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[3]*1000; + }else if((tmp > 800)&&((tmp<= 1000))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[4]*1000; + }else if((tmp > 1000)&&((tmp<= 1200))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[5]*1000; + }else if((tmp > 1200)&&((tmp<= 1400))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[6]*1000; + }else if((tmp > 1400)&&((tmp<= 1600))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[7]*1000; + }else if((tmp > 1600)&&((tmp<= 1800))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[8]*1000; + }else if((tmp > 1800)&&((tmp<= 2000))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[9]*1000; + }else if((tmp > 2000)&&((tmp<= 2200))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[10]*1000; + }else if((tmp > 2200)&&((tmp<= 2400))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[11]*1000; + }else if((tmp > 2400)&&((tmp<= 2600))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[12]*1000; + }else if((tmp > 2600)&&((tmp<= 2800))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[13]*1000; + }else if((tmp > 2800)&&((tmp<= 3000))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[14]*1000; + }else if((tmp > 3000)&&((tmp<= 3400))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[15]*1000; + }else if((tmp > 3400)&&((tmp<= 3800))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[16]*1000; + }else if((tmp > 3800)&&((tmp<= 4200))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[17]*1000; + }else if((tmp > 4200)&&((tmp<= 4600))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[18]*1000; + }else if((tmp > 4600)&&((tmp<= 5000))){ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[20]*1000; + }else{ + tmp = float(rsp[3]*256 + rsp[4]) + gOffset[0]*1000; + } + + log += QString::asprintf("%.2f\r\n",tmp); + if(ret < 0){ log += "超时"; } @@ -156,7 +211,7 @@ public: mMux.unlock(); } } - qDebug()<<"keep alive"; +// qDebug()<<"keep alive"; QThread::msleep(100); } diff --git a/mainwindow.cpp b/mainwindow.cpp index 33d507f..225f006 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -35,7 +35,6 @@ MainWindow::MainWindow(QWidget *parent) ui->comboBox->addItem("57600"); ui->comboBox->addItem("115200"); - } MainWindow::~MainWindow() diff --git a/sub.ui b/sub.ui index 44128a0..69f4909 100644 --- a/sub.ui +++ b/sub.ui @@ -83,6 +83,20 @@ + + + + 计算 + + + + + + + 清除 + + + @@ -99,7 +113,7 @@ - + @@ -126,10 +140,17 @@ + + + + 数值: + + + - + diff --git a/subform.cpp b/subform.cpp index 734f372..5a0d4c6 100644 --- a/subform.cpp +++ b/subform.cpp @@ -14,6 +14,7 @@ # pragma execution_character_set("utf-8") #endif +float gOffset[20]; SubForm::SubForm(QString addr,int baurate,int device_addr,int rate) :ui(new Ui::Form) { @@ -46,18 +47,110 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate) if(this->mLines.find(z->addr) != mLines.end()){ static int i = 0; qDebug()<< mLines[z->addr]->count()<<"fsdf"; - mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0])); + if(fabs(float(z->val1[0])) < 10000) { - mCapMax++; + if((z->val1[0] > 0)&&(float(z->val1[0]<= 200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[0]*1000)); + }else if((z->val1[0] > 200)&&((z->val1[0]<= 400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[1]*1000)); + }else if((z->val1[0] > 400)&&((z->val1[0]<= 600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[2]*1000)); + }else if((z->val1[0] > 600)&&((z->val1[0]<= 800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[3]*1000)); + }else if((z->val1[0] > 800)&&((z->val1[0]<= 1000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[4]*1000)); + }else if((z->val1[0] > 1000)&&((z->val1[0]<= 1200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[5]*1000)); + }else if((z->val1[0] > 1200)&&((z->val1[0]<= 1400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[6]*1000)); + }else if((z->val1[0] > 1400)&&((z->val1[0]<= 1600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[7]*1000)); + }else if((z->val1[0] > 1600)&&((z->val1[0]<= 1800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[8]*1000)); + }else if((z->val1[0] > 1800)&&((z->val1[0]<= 2000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[9]*1000)); + }else if((z->val1[0] > 2000)&&((z->val1[0]<= 2200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[10]*1000)); + }else if((z->val1[0] > 2200)&&((z->val1[0]<= 2400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[11]*1000)); + }else if((z->val1[0] > 2400)&&((z->val1[0]<= 2600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[12]*1000)); + }else if((z->val1[0] > 2600)&&((z->val1[0]<= 2800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[13]*1000)); + }else if((z->val1[0] > 2800)&&((z->val1[0]<= 3000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[14]*1000)); + }else if((z->val1[0] > 3000)&&((z->val1[0]<= 3400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[15]*1000)); + }else if((z->val1[0] > 3400)&&((z->val1[0]<= 3800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[16]*1000)); + }else if((z->val1[0] > 3800)&&((z->val1[0]<= 4200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[17]*1000)); + }else if((z->val1[0] > 4200)&&((z->val1[0]<= 4600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[18]*1000)); + }else if((z->val1[0] > 4600)&&((z->val1[0]<= 5000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[19]*1000)); + }else{ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0])); + } + + mCapMax++; + } }else{ mLines[z->addr] = new QLineSeries; mChart->addSeries(mLines[z->addr]); // mLines[z->addr]->attachAxis(mAxisX); // mLines[z->addr]->attachAxis(mAxisY); - mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0])); + if(fabs(float(z->val1[0])) < 10000){ + if((z->val1[0] > 0)&&(float(z->val1[0]<= 200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[0]*1000)); + }else if((z->val1[0] > 200)&&((z->val1[0]<= 400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[1]*1000)); + }else if((z->val1[0] > 400)&&((z->val1[0]<= 600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[2]*1000)); + }else if((z->val1[0] > 600)&&((z->val1[0]<= 800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[3]*1000)); + }else if((z->val1[0] > 800)&&((z->val1[0]<= 1000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[4]*1000)); + }else if((z->val1[0] > 1000)&&((z->val1[0]<= 1200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[5]*1000)); + }else if((z->val1[0] > 1200)&&((z->val1[0]<= 1400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[6]*1000)); + }else if((z->val1[0] > 1400)&&((z->val1[0]<= 1600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[7]*1000)); + }else if((z->val1[0] > 1600)&&((z->val1[0]<= 1800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[8]*1000)); + }else if((z->val1[0] > 1800)&&((z->val1[0]<= 2000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[9]*1000)); + }else if((z->val1[0] > 2000)&&((z->val1[0]<= 2200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[10]*1000)); + }else if((z->val1[0] > 2200)&&((z->val1[0]<= 2400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[11]*1000)); + }else if((z->val1[0] > 2400)&&((z->val1[0]<= 2600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[12]*1000)); + }else if((z->val1[0] > 2600)&&((z->val1[0]<= 2800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[13]*1000)); + }else if((z->val1[0] > 2800)&&((z->val1[0]<= 3000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[14]*1000)); + }else if((z->val1[0] > 3000)&&((z->val1[0]<= 3400))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[15]*1000)); + }else if((z->val1[0] > 3400)&&((z->val1[0]<= 3800))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[16]*1000)); + }else if((z->val1[0] > 3800)&&((z->val1[0]<= 4200))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[17]*1000)); + }else if((z->val1[0] > 4200)&&((z->val1[0]<= 4600))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[18]*1000)); + }else if((z->val1[0] > 4600)&&((z->val1[0]<= 5000))){ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0] + gOffset[19]*1000)); + }else{ + mLines[z->addr]->append( (mCapMax + 1),float(z->val1[0])); + } + + + mCapMax++; + + } mLines[z->addr]->setName(QString::asprintf("%d",z->addr)); - mCapMax++; } // mSeries1->append(sd,z->val1); pTime.append(QDateTime::currentDateTime().toString("yyyyMMdd-hh:mm:ss")); @@ -105,15 +198,58 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate) }else{ mModel->item(found->row(),0)->setData(QString("%1").arg(z->addr),Qt::DisplayRole); - if(succ) - mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0]),Qt::DisplayRole); + if(succ){ + if((z->val1[0] > 0)&&(float(z->val1[0]<= 200))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[0]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 200)&&((z->val1[0]<= 400))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[1]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 400)&&((z->val1[0]<= 600))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[2]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 600)&&((z->val1[0]<= 800))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[3]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 800)&&((z->val1[0]<= 1000))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[4]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 1000)&&((z->val1[0]<= 1200))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[5]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 1200)&&((z->val1[0]<= 1400))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[6]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 1400)&&((z->val1[0]<= 1600))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[7]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 1600)&&((z->val1[0]<= 1800))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[8]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 1800)&&((z->val1[0]<= 2000))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[9]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 2000)&&((z->val1[0]<= 2200))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[10]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 2200)&&((z->val1[0]<= 2400))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[11]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 2400)&&((z->val1[0]<= 2600))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[12]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 2600)&&((z->val1[0]<= 2800))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[13]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 2800)&&((z->val1[0]<= 3000))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[14]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 3000)&&((z->val1[0]<= 3400))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[15]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 3400)&&((z->val1[0]<= 3800))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[16]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 3800)&&((z->val1[0]<= 4200))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[17]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 4200)&&((z->val1[0]<= 4600))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[18]*1000),Qt::DisplayRole); + }else if((z->val1[0] > 4600)&&((z->val1[0]<= 5000))){ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0] + gOffset[19]*1000),Qt::DisplayRole); + }else{ + mModel->item(found->row(),1)->setData(QString("%1").arg(z->val1[0]),Qt::DisplayRole); + } + + } else mModel->item(found->row(),1)->setData(QString("ʱ"),Qt::DisplayRole); mModel->item(found->row(),2)->setData(QString("%1").arg(z->time),Qt::DisplayRole); } - sd ++; if(sd > mMaxX){ mMaxX += 1024; @@ -121,13 +257,43 @@ SubForm::SubForm(QString addr,int baurate,int device_addr,int rate) } delete z; } + }); pTimer->start(10); qDebug()<lineEdit_2->setText(addr); gAsyncData->AddConfig(this->mConfig); ui->tableView->setColumnWidth(2,230); - connect(gAsyncData,SIGNAL(Info(QString)),this,SLOT( on_log(QString))); + connect(gAsyncData,SIGNAL(Info(QString)),this,SLOT(on_log(QString))); + + ui->graphicsView->setRubberBand(QChartView::RectangleRubberBand); + + + + // connect(this, &MainWindow::rubberBandChanged,this, &MainWindow::rubberZoomAdapt); +// mRubberBand = this->mChart->findChild(); +// mRubberBand->installEventFilter(this); +// mRubberBand->installEventFilter(this); +// connect(this, &SubForm::rubberBandChanged,this, &SubForm::rubberZoomAdapt); + +// QObject::connect(qobject_cast(ui->graphicsView), +// &QGraphicsView::rubberBandChanged, +// this, +// &SubForm::rubberZoomAdapt); + + QFile file("offset.csv"); + bool isopen = file.open(QFile::ReadOnly); + if(isopen){ + qDebug() << "open txt file is success"; + } + QString tmp = QString(file.readAll()); + QStringList iat = tmp.split("\r\n"); + qDebug()< 20){ + for(int i = 0;i < iat.size();i++){ + gOffset[i] = iat.at(i).toFloat(); + } + } } void SubForm::on_pushButton_clicked() { @@ -183,9 +349,9 @@ void SubForm::init_charts() mChart->addSeries(mSeries1); // mAxisX->setMin(0); //YΧ - mAxisX->setMax(1024); - mMaxX = 1024; - mAxisX->setTickCount(17); + mAxisX->setMax(256); + mMaxX = 256; + mAxisX->setTickCount(8); mAxisX->setLabelFormat("%d"); mAxisX->setTitleText("point"); //X mAxisX->setLineVisible(true); @@ -198,7 +364,7 @@ void SubForm::init_charts() mAxisY->setMin(-10); //YΧ mAxisY->setMax(100); - mAxisY->setTickCount(11); + mAxisY->setTickCount(6); mAxisY->setLabelFormat("%d"); mAxisY->setLinePenColor(QColor(Qt::yellow)); // mAxisY->setGridLineColor(QColor(Qt::yellow)); @@ -226,13 +392,21 @@ void SubForm::init_charts() mChart->setMargins(QMargins(0,0,0,0)); ui->graphicsView->setChart(mChart); + + +// ui->graphicsView->setRubberBand(QChartView::HorizontalRubberBand); +// this->mRubberBand = ui->graphicsView->findChild(); +// this->mRubberBand->installEventFilter(this); + +// connect(this, &SubForm::rubberBandChanged,this, &SubForm::rubberZoomAdapt); + ui->graphicsView->setRenderHint(QPainter::TextAntialiasing); // ui->graphicsView->setBackgroundBrush(QBrush(QColor(Qt::black),Qt::SolidPattern)); ui->graphicsView->scene()->setBackgroundBrush(QBrush(QColor(Qt::black),Qt::SolidPattern)); - ui->graphicsView->setRubberBand(QChartView::VerticalRubberBand); + ui->graphicsView->setRubberBand(QChartView::RectangleRubberBand); mChart->legend()->setAlignment(Qt::AlignBottom);// - mChart->legend()->setContentsMargins(10,10,10,10);//left,top,right,bottom + mChart->legend()->setContentsMargins(0,0,0,0);//left,top,right,bottom mChart->legend()->setVisible(true);// QFont font = mChart->legend()->font(); font.setItalic(!font.italic()); @@ -240,6 +414,36 @@ void SubForm::init_charts() font.setPointSizeF(12); mChart->legend()->setFont(font);//С mChart->legend()->setLabelColor(Qt::white); // + + + + ui->graphicsView->setRenderHint(QPainter::Antialiasing); + ui->graphicsView->setRubberBand(QChartView::NoRubberBand); + ui->graphicsView->setDragMode(QChartView::RubberBandDrag); + + connect(ui->graphicsView,&QChartView::rubberBandChanged,this,[=](QRect viewportRect, QPointF fromScenePoint, QPointF toScenePoint){ + qDebug()<<"rubberBandChanged"<chart()->series().first(); +// QVector ver = series->pointsVector(); +// // qDebug() << "ver="<req.append(Req{ - ui->lineEdit->text().toUShort(), - ui->lineEdit_3->text().toUShort(), - }); + ui->lineEdit->text().toUShort(), + ui->lineEdit_3->text().toUShort(), + }); } void SubForm::on_log(QString info) @@ -275,6 +479,41 @@ void SubForm::on_pushButton_3_clicked() void SubForm::on_pushButton_4_clicked() { - gAsyncData->Continue(); + gAsyncData->Continue(); +} + +void SubForm::rubberZoomAdapt(QPointF fp, QPointF tp) +{ + qDebug()<<"rubberZoomAdapt"<mAxisX->max()<mAxisX->min(); + auto itr = this->mLines.begin(); + for(int i = 0;i < itr.value()->count();i++){ + qDebug()<<"on_pushButton_5_clicked"<at(i); + if((i >= mAxisX->min()) && (i <= mAxisX->max())){ + sum += itr.value()->at(i).y(); + count++; + } + } + qDebug()<<"on_pushButton_5_clicked count"<label_7->setText(QString::asprintf("ֵ:%f",sum/float(count))); +} + +void SubForm::on_pushButton_6_clicked() +{ + for(auto itr = this->mLines.begin();itr != this->mLines.end();itr++){ + itr.value()->removePoints(0,itr.value()->points().size()); + itr.value()->clear(); + } + this->mCapMax = 0; + } diff --git a/subform.h b/subform.h index 12335f5..929c13e 100644 --- a/subform.h +++ b/subform.h @@ -13,15 +13,19 @@ #include "global.h" #include #include - +#include +#include +#include QT_BEGIN_NAMESPACE namespace Ui { class Form; } QT_END_NAMESPACE +using namespace QtCharts; -class SubForm :QWidget + +class SubForm :public QWidget { Q_OBJECT public: @@ -41,6 +45,15 @@ private slots: void on_pushButton_4_clicked(); + void on_pushButton_5_clicked(); + + void on_pushButton_6_clicked(); + +public slots: + void rubberZoomAdapt(QPointF fp, QPointF tp); + +signals: + void rubberBandChanged(QPointF fp, QPointF tp); private: Ui::Form *ui; QChart *mChart; @@ -59,6 +72,8 @@ private: bool mStart; QStandardItemModel *mModel; int mCapMax = 0; + QRubberBand *mRubberBand; + }; diff --git a/untitled.pro b/untitled.pro index e4eee29..58d49a7 100644 --- a/untitled.pro +++ b/untitled.pro @@ -8,7 +8,7 @@ CONFIG += c++11 # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 -include(G:\project\c++qt\qsswraper\qsswraper.pri) +include(C:\\Users\\zheng\\Documents\\qsswraper\\qsswraper.pri) SOURCES += \