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

QML Chart组件之图例

目录

    • 前言
    • 相关系列
    • 图例基础知识
    • 基础示例
    • 图例属性说明
      • 1. 设置图例不可见
      • 2. 设置图例边框和背景样式
      • 3. 设置图例字体
      • 4. 设置标签颜色
      • 5. 设置标记形状
      • 6. 反转标识
      • 7. 设置图例位置
      • 8. 设置图例ToolTips
    • 结语
    • 源码下载

前言

在上文 QML Chart组件之坐标轴共有属性 中介绍了坐标轴基类的通用方法,本篇主要介绍Chart组件的 Legend(图例)用法。图例是图表中用于标识不同数据系列的视觉元素,它通过颜色、形状和文本来区分各个数据序列,帮助用户更好地理解图表内容。

相关系列

  • QML Chart组件之坐标轴共有属性
  • QML Chart组件之坐标轴示例
  • 在QML中使用Chart组件

图例基础知识

在Qt Charts中,Legend类是图表的图例组件,用于展示各个数据系列的标识。每个ChartView都有一个默认的图例,可以通过legend属性进行访问和配置。图例可以显示系列名称、颜色标记,并支持交互操作(如点击隐藏/显示系列)。

图例的主要作用包括:

  • 标识不同数据系列的含义
  • 通过视觉元素区分数据系列
  • 提供交互功能控制系列显示状态

基础示例

import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueValueAxis {id: valueAxisXmin: 0max: 4titleText: "X Title"}ValueAxis {id: valueAxisYmin: 0max: 16titleText: "Y Title"}LineSeries {name: "line1"XYPoint { x: 0; y: 0 }XYPoint { x: 1; y: 1 }XYPoint { x: 2; y: 4 }XYPoint { x: 3; y: 9 }XYPoint { x: 4; y: 16 }axisX: valueAxisXaxisY: valueAxisY}LineSeries {name: "line2"XYPoint { x: 0; y: 2 }XYPoint { x: 1; y: 4 }XYPoint { x: 2; y: 5 }XYPoint { x: 3; y: 8 }XYPoint { x: 4; y: 12 }axisX: valueAxisXaxisY: valueAxisY}}
}

在这里插入图片描述
▲ 基础示例效果图

接下来要在此示例的基础上进行调整,展示如何设置Legend属性,以及修改后的效果。


图例属性说明

1. 设置图例不可见

默认情况下,图例是可见的。通过设置legend.visible属性为false可以隐藏图例。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: false
}

隐藏图例


2. 设置图例边框和背景样式

可以通过相关属性设置图例的背景和边框样式,增强视觉效果。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.backgroundVisible: truelegend.color: "#E0E0E0"legend.borderColor: "#999999"
}

在这里插入图片描述
▲ 设置图例边框和背景样式的效果


3. 设置图例字体

可以自定义图例中文本的字体样式,包括字体家族、大小和粗细。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.font.family: "Courier"legend.font.pointSize: 12legend.font.bold: true
}

在这里插入图片描述
▲ 设置图例字体样式的效果


4. 设置标签颜色

通过labelColor属性可以设置图例文本的颜色。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.labelColor: "#1296FF"
}

在这里插入图片描述
▲ 设置图例标签颜色的效果


5. 设置标记形状

markerShape属性用于设置图例中标记的形状,可以选择多种预设形状。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.markerShape: Legend.MarkerShapeFromSeries
}
常量描述
Legend.MarkerShapeRectangle图例标记为矩形
Legend.MarkerShapeCircle图例标记为圆形
Legend.MarkerShapeRotatedRectangle图例标记为旋转的矩形
Legend.MarkerShapeTriangle图例标记为三角形
Legend.MarkerShapeStar图例标记为星形
Legend.MarkerShapePentagon图例标记为五边形
Legend.MarkerShapeFromSeries图例标记形状由系列决定

MarkerShapeRectangle(图例标记为矩形):
在这里插入图片描述

MarkerShapeCircle(图例标记为圆形):
在这里插入图片描述
MarkerShapeRotatedRectangle(图例标记为旋转的矩形):
在这里插入图片描述
MarkerShapeTriangle(图例标记为三角形):
在这里插入图片描述
MarkerShapeStar(图例标记为星形):
在这里插入图片描述
MarkerShapePentagon(图例标记为五边形):
在这里插入图片描述
MarkerShapeFromSeries(图例标记形状由系列决定):
在这里插入图片描述
▲ 不同标记形状的效果对比


6. 反转标识

reverseMarkers属性可以控制图例中标记和文本的显示顺序。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.reverseMarkers: true
}

在这里插入图片描述
▲ 设置反转标识的效果


7. 设置图例位置

通过alignment属性可以控制图例在图表中的位置。

ChartView {id: chartViewtitle: "图例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: truelegend.visible: truelegend.alignment: Qt.AlignBottom
}

支持的位置包括:

  • Qt.AlignTop:顶部
  • Qt.AlignBottom:底部
  • Qt.AlignLeft:左侧
  • Qt.AlignRight:右侧

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

▲ 图例在不同位置的效果


8. 设置图例ToolTips

注意:此属性目前没有效果,因为QML中不支持工具提示。

结语

本文详细介绍了QML Chart组件中图例的各种属性和用法,包括显示控制、样式设置、位置调整等方面。通过合理配置图例属性,可以显著提升图表的可读性和用户体验。

在实际开发中,建议根据图表类型和数据特点选择合适的图例样式,并保持整体UI风格的一致性。对于复杂的数据可视化需求,还可以考虑使用自定义的图例组件来实现更高级的效果。

源码下载

Git Code 下载链接:QML Chart组件之图例示例

在这里插入图片描述


参考文献:

  • Qt官方文档 - Legend QML Type
  • Qt Charts示例
http://www.xdnf.cn/news/19304.html

相关文章:

  • 根据Excel数据表快速创建Word表格(标签)
  • 后向投影合成孔径辐射源定位方法(一)
  • 基于计算机视觉的海底图像增强系统:技术详述与实现
  • VMWare Tools (Linux)安装教程
  • 性能优化三剑客:`memo`, `useCallback`, `useMemo` 详解
  • Java异常处理:掌握优雅捕获错误的艺术
  • 远程管理协议telnet、ssh
  • 智能制造——解读装备制造业智能工厂解决方案【附全文阅读】
  • 【IO学习】IO基础和标准IO函数
  • 拉长视频时长的两种方法
  • SCARA 机器人工具标定方法
  • VMware虚拟机网盘下载与安装指南(附安装包)
  • Ubuntu24.04(Jazzy)从零开始实现环境配置和Gmapping建图
  • Redis的Java客户端
  • MyBatis-动态sql
  • 【自记】 Python 中函数参数前加 *(单星号)的解包可迭代对象写法说明
  • 基于三维反投影矫正拼接视频
  • TJA1445学习笔记(二)
  • 咨询进阶——解读 目标管理实务:知识概述、管理概述和实施【附全文阅读】
  • 计算机视觉(四):二值化
  • MySQL面试集合
  • 【C++ 】STL详解(六)—手撸一个属于你的 list!
  • 力扣热题100:合并区间详解(Java实现)(56)
  • 在SAP系统中,如何查询已经被打上了删除标记的生产订单?
  • 数据结构(04)—— 栈和队列
  • [每周一更]-(第158期):构建高性能数据库:MySQL 与 PostgreSQL 系统化问题管理与优化指南
  • 【lua】元表、元方法 详解及应用
  • 【LeetCode_27】移除元素
  • Ubuntu中通过SSH克隆Windows的远程Git仓库(局域网中挺有用)
  • 对于牛客网—语言学习篇—编程初学者入门训练—复合类型:二维数组较简单题目的解析