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

Qt QLegend详解

1、概述

QLegend 是 Qt 图表模块(Qt Charts)中用于显示图表图例的类,它通常与 QChart 配合使用,用于解释图表中不同系列(series)的标识、颜色和样式等信息。图例能够帮助用户快速理解图表中各个数据系列的含义,是数据可视化中不可或缺的组成部分。

QLegend 可以通过 QChart 的 legend () 方法获取,它支持自定义外观、位置、布局方向等属性,并且可以根据需要显示或隐藏特定系列的图例项。

2、重要方法

  • void setVisible(bool visible):设置图例是否可见
  • bool isVisible() const:判断图例是否可见
  • void setAlignment(Qt::Alignment alignment):设置图例在图表中的对齐方式(如 Qt::AlignTop、Qt::AlignRight 等)
  • Qt::Alignment alignment() const:获取当前对齐方式
  • void setDirection(QLegend::Direction direction):设置图例项的排列方向(水平或垂直)
  • QLegend::Direction direction() const:获取当前排列方向
  • void setColor(QColor color):设置图例背景颜色
  • QColor color() const:获取图例背景颜色
  • void setBorderColor(QColor color):设置图例边框颜色
  • QColor borderColor() const:获取图例边框颜色
  • void setFont(const QFont &font):设置图例文本字体
  • QFont font() const:获取当前字体
  • void setLabelColor(QColor color):设置图例文本颜色
  • QColor labelColor() const:获取文本颜色
  • void markers(QAbstractSeries *series):获取指定系列对应的标记集合
  • void setMaximumHeight(int height):设置最大高度
  • void setMaximumWidth(int width):设置最大宽度
  • void setMinimumHeight(int height):设置最小高度
  • void setMinimumWidth(int width):设置最小宽度

3、常用枚举

  • QLegend::Direction:定义图例项的排列方向

    • QLegend::TopToBottom:垂直排列(从上到下)
    • QLegend::LeftToRight:水平排列(从左到右)
  • QLegendMarker::Type:定义图例标记的类型,与对应的图表系列类型一致

    • QLegendMarker::LegendMarkerTypeArea:面积图系列标记
    • QLegendMarker::LegendMarkerTypeBar:柱状图系列标记
    • QLegendMarker::LegendMarkerTypeLine:线图系列标记
    • QLegendMarker::LegendMarkerTypePie:饼图系列标记
    • QLegendMarker::LegendMarkerTypeScatter:散点图系列标记

4、C++ 实例

#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QHCandlestickModelMapper>QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建一个线性数据系列QLineSeries *series = new QLineSeries();*series << QPointF(0, 0) << QPointF(1, 1) << QPointF(2, 4) << QPointF(3, 9) << QPointF(4, 16);// 创建图表对象QChart *chart = new QChart();chart->addSeries(series);// 设置图表的标题chart->setTitle("简单的图表示例");// 创建坐标轴并设置QValueAxis *axisX = new QValueAxis();axisX->setRange(0, 4);axisX->setTitleText("X 轴");QValueAxis *axisY = new QValueAxis();axisY->setRange(0, 20);axisY->setTitleText("Y 轴");chart->setAxisX(axisX, series);chart->setAxisY(axisY, series);// 启用图例QLegend *legend = chart->legend();legend->setVisible(true);  // 设置图例可见// 创建图表视图,并将图表添加到视图中QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);// 创建窗口并设置窗口内容QWidget window;QVBoxLayout *layout = new QVBoxLayout();layout->addWidget(chartView);window.setLayout(layout);window.setWindowTitle("Qt 图表实例");window.resize(600, 400);window.show();return a.exec();
}

点击扫码加入群聊

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

           

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


文章转载自:

http://zpevF9mI.hbdqf.cn
http://xrRgXWr5.hbdqf.cn
http://kkWAmmYy.hbdqf.cn
http://fi196uDc.hbdqf.cn
http://ciO5tkCL.hbdqf.cn
http://AozBaUtz.hbdqf.cn
http://r5KTiAU5.hbdqf.cn
http://gcIncgvI.hbdqf.cn
http://6dZT3tMA.hbdqf.cn
http://pJf5H3aL.hbdqf.cn
http://3mh5g39x.hbdqf.cn
http://7wJYd15C.hbdqf.cn
http://g80CsgFv.hbdqf.cn
http://i5LzU8CC.hbdqf.cn
http://tcADLa0b.hbdqf.cn
http://FBSS1hfi.hbdqf.cn
http://JbQI2F7I.hbdqf.cn
http://DtLs0QVL.hbdqf.cn
http://VNmupSR9.hbdqf.cn
http://7mK4mTK2.hbdqf.cn
http://6PkfoFEu.hbdqf.cn
http://odZcc3RC.hbdqf.cn
http://GxJJ8S91.hbdqf.cn
http://RyveKl8D.hbdqf.cn
http://LKjOFmYV.hbdqf.cn
http://2yTSGhSf.hbdqf.cn
http://w3Oe5mvp.hbdqf.cn
http://L4BnKVcn.hbdqf.cn
http://H1Phn2mP.hbdqf.cn
http://dFP5Dx3b.hbdqf.cn
http://www.dtcms.com/a/387602.html

相关文章:

  • C++ 初识
  • 从零实现 Qiankun 微前端:基座应用控制子应用路由与信息交互
  • 云函数(Serverless)深度解读
  • 设计模式概述
  • 基于 TCP 协议的 C++ 计算器项目实现:从网络通信到协议封装
  • 【分布式技术】深入理解AMQP(高级消息队列协议)
  • 海外短剧分销系统开发:技术栈选型与核心模块实现指南
  • 每日前端宝藏库 | Toastify.js ✨
  • Nuxt3:自动导入渲染模式服务器引擎生产部署模块化
  • 打造高效对账单管理组件:Vue3 + Element Plus 实现客户账单与单据选择
  • 第二章 Arm C1-Premium Core技术架构
  • Bartender 6 多功能菜单栏管理(Mac)
  • 嵌入式科普(38)C语言预编译X-Macros深度分析和实际项目代码分享
  • Docker compose 与 docker swarm 的区别
  • 【嵌入式硬件实例】-555定时器实现水位检测
  • AbMole小课堂丨R-spondin-1(RSPO1):高活性Wnt通路激活剂,如何在多种类器官/干细胞培养中发挥重要功能
  • 【C语言代码】打印九九乘法口诀表
  • vue3和element plus, node和express实现大文件上传, 分片上传,断点续传完整开发代码
  • electron-egg使用ThinkPHP项目指南
  • 温州工业自动化科技工厂如何实现1台服务器10个研发设计同时用
  • 如何用PM2托管静态文件
  • Java程序设计:基本数据类型
  • 在k8s环境下部署kanboard项目管理平台
  • 为什么 MySQL utf8 存不下 Emoji?utf8mb4 实战演示
  • 2025 年 PHP 常见面试题整理以及对应答案和代码示例
  • (二十五)、在 k8s 中部署证书,为网站增加https安全认证
  • 风机巡检目前有什么新技术?
  • 震坤行工业超市开放平台接口实战:工业品精准检索与详情解析全方案
  • 河南萌新联赛2025第(八)场:南阳理工学院
  • docker回收和mysql备份导入导致数据丢失恢复---惜分飞