// 获取 y 轴并设置范围
QValueAxis *axisY = qobject_cast<QValueAxis *>(chart->axes(Qt::Vertical).first());
if (axisY) {
axisY->setRange(0, 6); // 设置 y 轴范围为 0 到 6
}
在 Qt 的 QChart 类中,设置 y 轴的范围与设置 x 轴的范围类似。你首先需要获取到 y 轴对象,然后调用其 setRange
方法来设置范围。以下是一个示例代码,展示了如何设置 QChart 的 y 轴范围:
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建一个 QLineSeries 对象并添加数据点
QLineSeries *series = new QLineSeries();
series->append(0, 1);
series->append(1, 3);
series->append(2, 2);
series->append(3, 5);
series->append(4, 4);
// 创建一个 QChart 对象并添加该序列
QChart *chart = new QChart();
chart->addSeries(series);
chart->createDefaultAxes();
// 获取 y 轴并设置范围
QValueAxis *axisY = qobject_cast<QValueAxis *>(chart->axes(Qt::Vertical).first());
if (axisY) {
axisY->setRange(0, 6); // 设置 y 轴范围为 0 到 6
}
// 创建一个 QChartView 来显示 QChart
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// 创建一个 QMainWindow 或其他窗口来显示 QChartView
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
return a.exec();
}
在这个示例中,我们:
- 创建了一个
QLineSeries
对象并添加了一些数据点。 - 创建了一个
QChart
对象并将数据序列添加到图表中。 - 通过
createDefaultAxes
方法创建了默认的轴,包括 x 轴和 y 轴。 - 获取了垂直轴(y 轴)并设置其范围为 0 到 6。
- 创建了一个
QChartView
来显示图表,并将其设置为主窗口的中心小部件。
请注意,axes(Qt::Vertical)
方法用于获取图表中的所有垂直轴(即 y 轴)。在这个例子中,我们假设图表只有一个 y 轴,因此直接取第一个轴来设置范围。如果你的图表中有多个 y 轴,你可能需要更精确地选择或遍历它们。
通过这种方式,你可以轻松地设置 QChart 的 y 轴范围。如果需要动态调整范围,可以随时调用 setRange
方法来更新轴的范围。