Qt图例类QLegend详解
概述
在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详解相关推荐
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- Qt QPushButton按钮用法详解
Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...
- Matplotlib axes类使用详解
Matplotlib axes类使用详解 Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域.在一个给定的画 ...
- Qt QFile文件操作详解
Qt QFile文件操作详解 很多应用程序都需要具备操作文件的能力,包括对文件内容进行读/写.创建和删除文件等,甚至某些应用程序的诞生纯粹是为了操作文件,比如 WPS Office.PDFedit 等 ...
- .net System.Web.Caching.Cache缓存类使用详解(转载)
转自:http://www.cnblogs.com/virusswb/articles/1681561.html net System.Web.Caching.Cache缓存类使用详解 System. ...
- ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解
一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...
- Java记录 -22- Java的基类Object详解
Java的基类Object详解 Java的JDK文档要经常查阅使用,最好查看英文的文档. Oracle官方在线 Java API Specifications http://www.oracle.co ...
- QT:常用函数详解--常用操作记录(个人笔记)
QT:常用函数详解(个人笔记) PS:一下内容个人笔记,要求自己看懂,随笔,阅读体验会很差很差! Qt setContentsMargins()函数 函数原型:void QLayout::setCon ...
- C#中NameValueCollection类用法详解
C#中NameValueCollection类用法详解,1.NameValueCollection类集合是基于 NameObjectCollectionBase 类. 但与 NameObjectCol ...
最新文章
- 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!读完工资多个0!
- LeetCode 26 号问题 删除数组中的重复项
- django 使用json.dumps转换queryset的datatime报错问题解决
- 如何实现快速的diff工具(windiff, winmerge)?
- Hystrix的应用案例:多短信供应商的自动切换与恢复
- 微型计算机原理应用总结,微机原理总结
- 玩转mini2440开发板之【使用nfs无法启动的问题(Virtualbox桥接网络)】
- [译]如何在.NET Core中使用System.Drawing?
- Django在Window下的部署
- c语言进程调度报告,操作系统C进程调度算法实验报告
- 迷茫的青春,迷茫的方向
- 分布式数据库设计——分布式数据库的基础概念
- (附源码)python飞机票销售系统 毕业设计 141432
- 三年级计算机之父童年教学设计,三年级语文计算机之父的童年故事课文教学设计...
- Linux 操作系统的体系结构
- Java开发中Word转PDF文件5种方案横向评测
- 计算机型号win7,教你win7系统电脑内存条型号怎么看
- 用云渲染好还是自己搭建传统渲染农场好?
- 2022珠三角深圳国际半导体防静电材料展览会
- 当今安全领域面试的几大怪现状