You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QtCharts设置固定Y轴刻度:如何让百分比Y轴始终显示至100%

让Qt柱状图Y轴固定显示至100%刻度的解决方案

如果使用Qt的QChart框架实现百分比柱状图,只需手动设置Y轴的固定范围并禁用自动调整即可解决问题,具体步骤如下:

核心设置步骤

  • 创建或获取Y轴对象(QValueAxis类型)
  • 禁用Y轴的自动范围计算:yAxis->setAutoRange(false);
  • 固定Y轴的取值范围为0到100:yAxis->setRange(0, 100);
  • 可选:设置刻度标签为百分比格式:yAxis->setLabelFormat("%d%%");

完整代码示例

以下是基于QBarSeries的完整实现片段:

// 初始化柱状图系列
QBarSeries *series = new QBarSeries();
QBarSet *dataSet = new QBarSet("百分比数据");
*dataSet << 45 << 60 << 85 << 95; // 示例数据
series->append(dataSet);

// 创建图表对象
QChart *chart = new QChart();
chart->addSeries(series);
chart->setTitle("固定Y轴的百分比柱状图");

// 配置Y轴
QValueAxis *yAxis = new QValueAxis();
yAxis->setRange(0, 100);          // 固定范围0-100
yAxis->setAutoRange(false);       // 关闭自动调整
yAxis->setLabelFormat("%d%%");    // 显示百分比标签
chart->addAxis(yAxis, Qt::AlignLeft);
series->attachAxis(yAxis);

// 配置X轴(按需设置分类)
QBarCategoryAxis *xAxis = new QBarCategoryAxis();
xAxis->append({"项目1", "项目2", "项目3", "项目4"});
chart->addAxis(xAxis, Qt::AlignBottom);
series->attachAxis(xAxis);

// 显示图表
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// 将chartView添加到窗口布局中(示例:作为主窗口中央部件)
setCentralWidget(chartView);

注意事项

  • 若之前调用过chart->createDefaultAxes(),必须在该方法之后重新设置Y轴的范围和禁用自动范围,因为createDefaultAxes()会自动重置轴的配置。
  • 更新数据时,直接修改QBarSet中的值即可,不要再次调用createDefaultAxes(),否则Y轴会恢复自动调整。

内容的提问来源于stack exchange,提问作者Bharath Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:01:01