Qt QValueAxis详解
1、概述
QValueAxis 是 Qt 图表模块(Qt Charts)中用于显示数值型坐标轴的类,主要用于为图表提供 X 轴或 Y 轴的数值刻度和标签。它可以灵活配置刻度范围、刻度间隔、标签格式等属性,适用于展示各种数值型数据的图表,如折线图、柱状图、散点图等。
QValueAxis 继承自 QAbstractAxis 类,提供了对数值范围的精确控制,支持自动调整范围或手动设置固定范围,是数据可视化中不可或缺的组件。
2、重要方法
void setRange(qreal min, qreal max)
:设置坐标轴的数值范围qreal min() const
:获取坐标轴的最小值qreal max() const
:获取坐标轴的最大值void setTickCount(int count)
:设置坐标轴上的刻度数量int tickCount() const
:获取当前刻度数量void setMinorTickCount(int count)
:设置每个主刻度之间的小刻度数量int minorTickCount() const
:获取小刻度数量void setLabelFormat(const QString &format)
:设置标签的显示格式(支持 printf 风格格式符)QString labelFormat() const
:获取当前标签格式void setTitleText(const QString &text)
:设置坐标轴标题QString titleText() const
:获取坐标轴标题void applyNiceNumbers()
:自动调整刻度范围和间隔,使刻度值更美观易读void setReverse(bool reverse)
:设置是否反转坐标轴(值从大到小排列)bool reverse() const
:判断坐标轴是否反转
3、信号
void rangeChanged(qreal min, qreal max)
:当坐标轴范围发生变化时发射void tickCountChanged(int tickCount)
:当刻度数量发生变化时发射void minorTickCountChanged(int minorTickCount)
:当小刻度数量发生变化时发射void labelFormatChanged(const QString &format)
:当标签格式发生变化时发射void reverseChanged(bool reverse)
:当坐标轴反转状态改变时发射void titleTextChanged(const QString &title)
:当坐标轴标题改变时发射
4、C++ 实例
#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QPieSlice>QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建图表QChart *chart = new QChart();chart->setTitle("数值坐标轴示例");chart->legend()->hide();// 准备数据QLineSeries *series = new QLineSeries();*series << QPointF(0, 6) << QPointF(2, 4) << QPointF(3, 8)<< QPointF(7, 4) << QPointF(10, 5) << QPointF(13, 7);chart->addSeries(series);// 创建X轴并配置QValueAxis *axisX = new QValueAxis();axisX->setTitleText("X轴");axisX->setRange(0, 15); // 设置范围axisX->setTickCount(6); // 设置主刻度数量axisX->setMinorTickCount(2); // 每个主刻度间的小刻度数量axisX->setLabelFormat("%.1f"); // 标签格式,保留一位小数// 创建Y轴并配置QValueAxis *axisY = new QValueAxis();axisY->setTitleText("Y轴");axisY->applyNiceNumbers(); // 自动调整为美观的刻度axisY->setLabelFormat("%d"); // 整数格式显示axisY->setReverse(false); // 不反转// 将坐标轴添加到图表chart->addAxis(axisX, Qt::AlignBottom);chart->addAxis(axisY, Qt::AlignLeft);// 将数据系列关联到坐标轴series->attachAxis(axisX);series->attachAxis(axisY);// 创建图表视图并显示QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);chartView->resize(800, 600);chartView->show();return a.exec();
}
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!