This commit is contained in:
2020-07-29 17:53:30 +08:00
parent 8cea5f81ed
commit a8143c88b5
5 changed files with 132 additions and 13 deletions
+91 -5
View File
@@ -8,9 +8,58 @@ Scope::Scope(QWidget *parent) :
ui->setupUi(this);
virtualscope = new VirtualScope(this);
virtualscope->setGeometry(ui->frame->geometry());
virtualscope->show();
chartView = new QChartView(this);
series = new QLineSeries(this);
chartView->setRenderHint(QPainter::Antialiasing);
chartView->chart()->legend()->setAlignment(Qt::AlignRight);
chartView->chart()->legend()->setMarkerShape(QLegend::MarkerShapeCircle);
chartView->chart()->legend()->setColor(Qt::yellow);
series->setName("123");
chartView->chart()->createDefaultAxes();
QPen pen(Qt::yellow);
pen.setWidth(2);
series->setPen(pen);
series->append(0, 0);
series->append(1, -4);
series->append(2, 5);
series->append(3, 6);
series->append(4, 2);
series->append(5, 9);
series->append(6, -0);
series->append(7, 4);
series->append(8, 4);
series->append(9, -5);
series->append(10, 6);
series->append(11, 2);
series->append(12, 9);
series->append(13, 0);
series->append(14, -4);
series->append(16, 4);
series->append(18, 5);
series->append(19, -6);
series->append(20, 2);
series->append(21, 9);
series->append(22, 0);
series->append(23, 4);
chartView->chart()->addSeries(series);
QValueAxis *axisX = new QValueAxis(this);
axisX->setRange(0, 1);
axisX->setTickCount(11);
axisX->setLabelFormat("%.2f");
chartView->chart()->setAxisX(axisX, series);
chartView->setGeometry(ui->frame->geometry());
QTimer::singleShot(10,this,SLOT(timeout()));
}
Scope::~Scope()
@@ -18,19 +67,56 @@ Scope::~Scope()
delete ui;
}
void Scope::mouseReleaseEvent(QMouseEvent *e)
{
qDebug() << "Scope release" << e;
}
void Scope::mousePressEvent(QMouseEvent *e)
{
qDebug() << "Scope press" << e;
}
void Scope::mouseDoubleClickEvent(QMouseEvent *e)
{
qDebug() << "Scope double clicked" << e;
}
void Scope::wheelEvent(QWheelEvent *e)
{
//改变是range
qDebug() << "Scope wheel" << e;
chartView->chart()->scroll(e->angleDelta().y(),0);
}
void Scope::resizeEvent(QResizeEvent *event)
{
Q_UNUSED(event)
virtualscope->setGeometry(ui->frame->geometry());
chartView->setGeometry(ui->frame->geometry());
}
void Scope::timeout(void)
{
chartUpdate();
QTimer::singleShot(10,this,SLOT(timeout()));
}
void Scope::chartUpdate(void)
{
//分别读取每个序列的一个数据
//增加到新的数据 里面
//滚动显示器
}
//void Scope::addSeries(void)
+23 -4
View File
@@ -2,12 +2,22 @@
#define SCOPE_H
#include <QWidget>
#include "VirtualScope.h"
#include "QDebug"
#include "QTimer"
#include "QChart"
#include <QChartView>
#include <QLineSeries>
#include <QValueAxis>
using namespace QtCharts;
namespace Ui {
class Scope;
}
class Scope : public QWidget
{
Q_OBJECT
@@ -18,13 +28,22 @@ public:
protected:
void resizeEvent(QResizeEvent *event);
void mouseReleaseEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e);
void wheelEvent(QWheelEvent *e);
void resizeEvent(QResizeEvent *event);
private slots:
void timeout(void);
void chartUpdate(void);
private:
Ui::Scope *ui;
VirtualScope *virtualscope = nullptr;
QChartView *chartView;
QLineSeries *series;
};
+5 -4
View File
@@ -1,5 +1,8 @@
QT += charts
RESOURCES += \
$$PWD/ScopeRes.qrc
@@ -7,12 +10,10 @@ FORMS += \
$$PWD/Scope.ui
HEADERS += \
$$PWD/Scope.h \
$$PWD/VirtualScope.h
$$PWD/Scope.h
SOURCES += \
$$PWD/Scope.cpp \
$$PWD/VirtualScope.cpp
$$PWD/Scope.cpp
+13
View File
@@ -34,6 +34,19 @@
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>430</x>
<y>20</y>
<width>201</width>
<height>161</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
</item>
</layout>