一么微笑 2023-03-14 08:26 采纳率: 100%
浏览 310
已结题

QCharts折线图 数据点的标签显示不全方法没有解决

每次触发一次,添加一个数据,但是标签只显示一部分,数据的值不断增加,标签显示的部分越多,请问怎么解决,我更改刻度等其他方法没有解决.

void ChartsViewWidget::InitLineSeries(const QStringList &seriesList)
{
    // 创建坐标轴
    QValueAxis *axisX = new QValueAxis;    // X轴
    axisX->setRange(0, 100);               // 设置坐标轴范围
    axisX->setTitleText("X轴标题");         // 标题
    axisX->setTickCount(11);                // 设置坐标轴主刻度的个数
    QValueAxis *axisY = new QValueAxis;    // Y轴
    axisY->setRange(0, 100);               // Y轴范围
    axisY->setTitleText("Y轴标题");         // 标题
    axisY->setTickCount(11);                // 设置坐标轴主刻度的个数
    //axisY->setMinorTickCount(1);           //设置两个主刻度之间的次刻度的个数
    //axisY->setTickInterval(1);              // 设置刻度间距为1
    // 创建曲线序列
    for (int i = 0; i < seriesList.size(); i++)
    {
        QLineSeries *series = new QLineSeries();
        series->setName(seriesList.at(i));
        // 其他附加参数
        series->setVisible(true);
        series->setPointLabelsFormat("@yPoint");
        series->setPointsVisible(true);       // 设置数据点可见
        series->setPointLabelsVisible(true);  // 设置数据点数值可见
        //series->setPointLabelsClipping(false);
        // 序列添加到图表            
        //QxxxSeries必须要先加载至chart,再setAxisX/Y,否则没有图上没有数据。
        m_pChart->addSeries(series);
        // 设置X于Y轴数据集
        m_pChart->setAxisX(axisX, series);   // 为序列设置坐标轴
        m_pChart->setAxisY(axisY, series);
        m_listSeries.append(series);
    }
}
//添加数据
void ChartsViewWidget::SetSeriesData(const QList<QList<qreal>> &dataList)
{
   for (int i = 0; i < dataList.size(); i++)
   {
      QLineSeries *series = (QLineSeries *)ui.widget->chart()->series().at(i);// 获取指针
      series->clear();
      for (int ii = 0; ii < dataList.at(i).size(); ii++)
       {
          int a = 5 * ii+5;
           series->append(a, dataList.at(i).at(ii));
            //*series << QPointF(a, dataList.at(i).at(ii));
        }
    }
}

img

  • 写回答

3条回答 默认 最新

  • 一么微笑 2024-07-03 10:26
    关注

    不能使用widget提升为QChartView,使用Graphics View去提升,就不会出现标签不全情况,具体原因不清楚。(不要瞎尝试)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月11日
  • 已采纳回答 7月3日
  • 创建了问题 3月14日