程序示例精选
C++曲线图折线图Qt窗体绘图
如需安装运行环境或远程调试,可点击 博主头像进入个人主页查看博主联系方式,由专业技术人员远程协助!
前言
这篇博客针对《C++曲线图折线图Qt窗体绘图》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
运行结果
文章目录
一、所需工具软件二、使用步骤
1. 引入库
2. 识别图像特征
3. 参数设置
4. 运行结果
三、在线协助
一、所需工具软件
1. VS2019, C++2. Yolov8, OpenCV
二、使用步骤
代码如下(示例):
#include #include #include #include using namespace std; #include "MainWindow.h" // #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); //QObject::connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(drawDisplay())); connect(ui.pushButton, &QPushButton::clicked, this, [=]() { /// 添加以下代码 //QLineSeries* series = new QLineSeries(); series->setPoints(true); // 设置数据点可见 *series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2); chart->legend()->hide(); chart->addSeries(series); chart->createDefaultAxes(); chart->setTitle("Simple line chart example"); ui.graphicsView->setRenderHint(QPainter::Antialiasing); }); } void QtChartZoomView::mouseMoveEvent(QMouseEvent *pEvent) { if (m_bMiddleButtonPressed) { QPoint oDeltaPos = pEvent->pos() - m_oPrePos; this->chart()->scroll(-oDeltaPos.x(), oDeltaPos.y()); m_oPrePos = pEvent->pos(); } __super::mouseMoveEvent(pEvent); } void QtChartZoomView::mousePressEvent(QMouseEvent *pEvent) { if (pEvent->button() == Qt::MiddleButton) { m_bMiddleButtonPressed = true; m_oPrePos = pEvent->pos(); this->setCursor(Qt::OpenHandCursor); } __super::mousePressEvent(pEvent); } void QtChartZoomView::mouseReleaseEvent(QMouseEvent *pEvent) { if (pEvent->button() == Qt::MiddleButton) { m_bMiddleButtonPressed = false; this->setCursor(Qt::ArrowCursor); } __super::mouseReleaseEvent(pEvent); } void QtChartZoomView::wheelEvent(QWheelEvent *pEvent) { qreal rVal = std::pow(0.999, pEvent->delta()); // 设置比例 // 1. 读取视图基本信息 QRectF oPlotAreaRect = this->chart()->plotArea(); QPointF oCenterPoint = oPlotAreaRect.center(); // 2. 水平调整 oPlotAreaRect.setWidth(oPlotAreaRect.width() * rVal); // 3. 竖直调整 oPlotAreaRect.setHeight(oPlotAreaRect.height() * rVal); // 4.1 计算视点,视点不变,围绕中心缩放 //QPointF oNewCenterPoint(); // 4.2 计算视点,让鼠标点击的位置移动到窗口中心 //QPointF oNewCenterPoint(pEvent->pos()); // 4.3 计算视点,让鼠标点击的位置尽量保持不动(等比换算,存在一点误差) QPointF oNewCenterPoint(2 * oCenterPoint - pEvent->pos() - (oCenterPoint - pEvent->pos()) / rVal); // 5. 设置视点 oPlotAreaRect.moveCenter(); // 6. 提交缩放调整 this->chart()->zoomIn(oPlotAreaRect); __super::wheelEvent(pEvent); }
运行结果
三、在线协助:
如需安装运行环境或远程调试,可点击博主头像,进入个人主页查看博主联系方式,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
博主个人主页:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc
博主所有文章点这里:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc
博主联系方式点这里:https://developer.aliyun.com/profile/expert/rfnzgp3sk3ahc