概述

在Qt绘制图表时,图例并不是由QChart类所管理的,而是交给单独的QLegend类。

QLegend类负责图例的绘制(包括颜色、线型、字体等),它与图表类QChart的关系是attach和detach。

实例

参考官方实例:

X:\Qt\Qt5.9.0\Examples\Qt-5.9\charts\legend

或者:

https://doc.qt.io/qt-5/qtcharts-legend-example.html

运行效果:

功能详解

设置图例标签是否粗体

先看看效果:

点击Toggle Bold按钮后,图例中显示的数据系列的名称,变为粗体:

对应的功能代码为:

    QFont font = m_chart->legend()->font();font.setBold(!font.bold());m_chart->legend()->setFont(font);

设置图例标签是否斜体

同样的,设置为斜体:

对应的功能代码为:

    QFont font = m_chart->legend()->font();font.setItalic(!font.italic());m_chart->legend()->setFont(font);

设置图例标签字体大小

改变字体大小为6:

对应的功能代码为:

    QFont font = m_chart->legend()->font();font.setPointSizeF(m_fontSize->value());m_chart->legend()->setFont(font);

图例的对齐格式:

功能代码:

void MainWidget::setLegendAlignment()
{QPushButton *button = qobject_cast<QPushButton *>(sender());switch (m_chart->legend()->alignment()) {case Qt::AlignTop:m_chart->legend()->setAlignment(Qt::AlignLeft);if (button)button->setText("Align (Left)");break;case Qt::AlignLeft:m_chart->legend()->setAlignment(Qt::AlignBottom);if (button)button->setText("Align (Bottom)");break;case Qt::AlignBottom:m_chart->legend()->setAlignment(Qt::AlignRight);if (button)button->setText("Align (Right)");break;default:if (button)button->setText("Align (Top)");m_chart->legend()->setAlignment(Qt::AlignTop);break;}
}

效果:

底部显示、

顶部显示、

左边显示、

右边显示、

图例附着/取消附着到图表

代码:

        legend->detachFromChart();m_chart->legend()->setBackgroundVisible(true);m_chart->legend()->setBrush(QBrush(QColor(128, 128, 128, 128)));m_chart->legend()->setPen(QPen(QColor(192, 192, 192, 192)));

效果:

还可以自由地移动图例的位置。功能代码:

    m_chart->legend()->setGeometry(QRectF(m_legendPosX->value(),m_legendPosY->value(),m_legendWidth->value(),m_legendHeight->value()));

返回到附着效果:

        legend->attachToChart();legend->setBackgroundVisible(false);

Qt图例类QLegend详解相关推荐

  1. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  2. Qt QPushButton按钮用法详解

    Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...

  3. Matplotlib axes类使用详解

    Matplotlib axes类使用详解 Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域.在一个给定的画 ...

  4. Qt QFile文件操作详解

    Qt QFile文件操作详解 很多应用程序都需要具备操作文件的能力,包括对文件内容进行读/写.创建和删除文件等,甚至某些应用程序的诞生纯粹是为了操作文件,比如 WPS Office.PDFedit 等 ...

  5. .net System.Web.Caching.Cache缓存类使用详解(转载)

    转自:http://www.cnblogs.com/virusswb/articles/1681561.html net System.Web.Caching.Cache缓存类使用详解 System. ...

  6. ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解

    一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...

  7. Java记录 -22- Java的基类Object详解

    Java的基类Object详解 Java的JDK文档要经常查阅使用,最好查看英文的文档. Oracle官方在线 Java API Specifications http://www.oracle.co ...

  8. QT:常用函数详解--常用操作记录(个人笔记)

    QT:常用函数详解(个人笔记) PS:一下内容个人笔记,要求自己看懂,随笔,阅读体验会很差很差! Qt setContentsMargins()函数 函数原型:void QLayout::setCon ...

  9. C#中NameValueCollection类用法详解

    C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCol ...

最新文章

  1. 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!读完工资多个0!
  2. LeetCode 26 号问题 删除数组中的重复项
  3. django 使用json.dumps转换queryset的datatime报错问题解决
  4. 如何实现快速的diff工具(windiff, winmerge)?
  5. Hystrix的应用案例:多短信供应商的自动切换与恢复
  6. 微型计算机原理应用总结,微机原理总结
  7. 玩转mini2440开发板之【使用nfs无法启动的问题(Virtualbox桥接网络)】
  8. [译]如何在.NET Core中使用System.Drawing?
  9. Django在Window下的部署
  10. c语言进程调度报告,操作系统C进程调度算法实验报告
  11. 迷茫的青春,迷茫的方向
  12. 分布式数据库设计——分布式数据库的基础概念
  13. (附源码)python飞机票销售系统 毕业设计 141432
  14. 三年级计算机之父童年教学设计,三年级语文计算机之父的童年故事课文教学设计...
  15. Linux 操作系统的体系结构
  16. Java开发中Word转PDF文件5种方案横向评测
  17. 计算机型号win7,教你win7系统电脑内存条型号怎么看
  18. 用云渲染好还是自己搭建传统渲染农场好?
  19. 2022珠三角深圳国际半导体防静电材料展览会
  20. 当今安全领域面试的几大怪现状

热门文章

  1. CDA LEVEL 1 考试,知识点汇总《市场调研》
  2. 墙、扫村都不新奇:农村电商新升级
  3. 【湍流】基于傅里叶变换实现大气湍流随机相位屏,增加了低频次谐波补偿附matlab代码
  4. Bandzip与360压缩
  5. 关于java好的交流平台_java玩友交流平台
  6. python从wind导入数据
  7. python基础之内置成员和魔法函数(16)
  8. excel仪表盘制作,商业智能仪表盘的作用
  9. 计算机语言 帕斯卡,用帕斯卡语言编程
  10. 数据库session分析表