当前位置:网站首页>轮子1:QCustomPlot初始化模板

轮子1:QCustomPlot初始化模板

2022-07-05 08:31:00 老赵的博客

void mainWindow::initTable(QCustomPlot *customPot, QString strX, QString strY)
{
    QLinearGradient plotGradient;
    plotGradient.setStart(0, 0);
    plotGradient.setFinalStop(0, 350);
    plotGradient.setColorAt(0, QColor(37, 40, 45));
    plotGradient.setColorAt(1, QColor(37, 40, 45));
    customPot->setBackground(plotGradient);      // 设置背景颜色

    QLinearGradient axisRectGradient;
    axisRectGradient.setStart(0, 0);
    axisRectGradient.setFinalStop(0, 350);
    axisRectGradient.setColorAt(0, QColor(37, 40, 45));
    axisRectGradient.setColorAt(1, QColor(37, 40, 45));
    customPot->axisRect()->setBackground(axisRectGradient);   // 设置QCPAxisRect背景颜色
    //x
    customPot->xAxis->setTicks(true);
    customPot->xAxis->setBasePen(QPen(Qt::white, 1));  // 轴线的画笔
    customPot->xAxis->setTickPen(QPen(Qt::white, 1));  // 轴刻度线的画笔
    customPot->xAxis->setSubTickPen(QPen(Qt::white, 1)); // 轴子刻度线的画笔
    customPot->xAxis->setTickLabelColor(Qt::white);  // 轴刻度文字颜色
    customPot->xAxis->setLabel(strX);  // 只有设置了标签,轴标签的颜色才会显示
    customPot->xAxis->setLabelColor(Qt::white);   // 轴标签颜色
    customPot->xAxis->setTickLengthIn(3);       // 轴线内刻度的长度
    customPot->xAxis->setTickLengthOut(5);      // 轴线外刻度的长度
    customPot->xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
    //y
    customPot->yAxis->setTicks(true);
    customPot->yAxis->setBasePen(QPen(Qt::white, 1));  // 轴线的画笔
    customPot->yAxis->setTickPen(QPen(Qt::white, 1));  // 轴刻度线的画笔
    customPot->yAxis->setSubTickPen(QPen(Qt::white, 1)); // 轴子刻度线的画笔
    customPot->yAxis->setTickLabelColor(Qt::white);  // 轴刻度文字颜色
    customPot->yAxis->setLabel(strY);  // 只有设置了标签,轴标签的颜色才会显示
    customPot->yAxis->setLabelColor(Qt::white);   // 轴标签颜色
    customPot->yAxis->setTickLengthIn(3);       // 轴线内刻度的长度
    customPot->yAxis->setTickLengthOut(5);      // 轴线外刻度的长度
    customPot->yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);

    //设置x轴刻度个数
    customPot->xAxis->ticker()->setTickCount(10);//10个主刻度
    customPot->xAxis->ticker()->setTickStepStrategy(QCPAxisTicker::tssReadability);//可读性优于设置

    // 每条网格对应一个刻度
    customPot->xAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));     // 网格线(对应刻度)画笔
    customPot->yAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));
    customPot->xAxis->grid()->setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine)); // 子网格线(对应子刻度)画笔
    customPot->yAxis->grid()->setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine));
    customPot->xAxis->grid()->setSubGridVisible(true);     // 显示子网格线
    customPot->yAxis->grid()->setSubGridVisible(true);

    customPot->xAxis->grid()->setZeroLinePen(Qt::NoPen);
    customPot->yAxis->grid()->setZeroLinePen(Qt::NoPen);

    //允许鼠标拖拽与滚轮缩放
    customPot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);

    customPot->yAxis->setSubTicks(false);
}

第一个轮子,记录一下,可直接使用,方便以后重复利用

原网站

版权声明
本文为[老赵的博客]所创,转载请带上原文链接,感谢
https://blog.csdn.net/sinat_20962951/article/details/125605185