当前位置: 首页 > news >正文

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();
}

点击扫码加入群聊

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

http://www.dtcms.com/a/390336.html

相关文章:

  • deepseek大模型部署
  • 消息队列与定时器:如何优雅地处理耗时任务?
  • Maya绑定基础知识总结合集:父子关系和父子约束对比、目标约束示例
  • STM32开发(中断模式:外部中断)
  • (圆方树)洛谷 P4630 APIO2018 铁人两项 题解
  • windows10 使用moon-pilot并配置模型
  • Linux笔记---epoll用法及原理:从内核探究文件等待队列的本质-回调机制
  • Python快速入门专业版(三十三):函数参数陷阱:默认参数的“可变对象”问题(避坑指南)
  • Spring Security 框架 实践小项目(实现不同用户登录显示不同菜单以及每个菜单不同权限)
  • 开发避坑指南(49):Java Stream 对List中的字符串字段求和
  • 网络编程day02-组播,广播
  • 前端左侧菜单列表怎么写
  • LLM大模型和文心一言、豆包、deepseek对比
  • stm32h743iit6 配置 FMC 的时钟源
  • 中小企业数字化转型:从工具升级到思维转变
  • 数据传输中的三大难题,ETL 平台是如何解决的?
  • DAY16 字节流、字符流、IO资源的处理、Properties、ResourceBundle
  • 电气工程师面试题及答案
  • Halcon一维码与二维码识别技术解析
  • 【数据库系统Trip 第1站】总概
  • 关于 Python 编程语言常见问题及技术要点的说明
  • Mysql常用函数积累
  • AntV可视化(MCP 1.8)避坑指南
  • 学习日报|线程池 OOM
  • C# Progress
  • 【LeetCode 每日一题】3495. 使数组元素都变为零的最少操作次数
  • Part01、02 基础知识与编程环境、C++ 程序设计
  • C++聊天系统从零到一:brpc RPC框架篇
  • Java编程思想 Thinking in Java 学习笔记——第2章 一切都是对象
  • AssemblyScript 入门教程(2)AssemblyScript的技术解析与实践指南