QLegend、QLegendMarker

QLegend

一、描述

图例。继承自 QGraphicsWidget。当曲线更改时,图例状态由 QChart 更新。 默认情况下,图例附加到图表,但可以将其分离以使其独立于图表布局。图例对象无法创建或删除,但可以通过 QChart 类引用。

上图标出来的部分就是图例。 

二、类型成员

1、enum QLegend::MarkerShape:此枚举描述了渲染图例标记项时使用的形状。

  • MarkerShapeDefault:仅 QLegendMarker 项目支持此值。
  • MarkerShapeRectangle:矩形标记。
  • MarkerShapeCircle:圆形标记。
  • MarkerShapeRotatedRectangle:旋转的矩形标记。
  • MarkerShapeTriangle:三角形标记。
  • MarkerShapeStar:星形标记。
  • MarkerShapePentagon:五角形标记。
  • MarkerShapeFromSeries:标记形状由曲线决定。在散点曲线的情况下,图例标记看起来像一个散点,并且与该点的大小相同。对于直线或样条曲线,图例标记看起来像直线的一小段。对于其他曲线类型,显示矩形标记。

三、属性类型

1、alignment : Qt::Alignment

图例与图表对齐方式。

可以是 Qt::AlignTopQt::AlignBottomQt::AlignLeftQt::AlignRight。如果设置多个标志,则结果是 undefined。

2、backgroundVisible : bool

图例背景是否可见。

3、borderColor : QColor

图例的边框颜色。

4、color : QColor

图例的背景(画刷)颜色。

5、font : QFont

图例使用的标记的字体。

6、labelColor : QColor

绘制标签的画笔颜色。

7、markerShape : MarkerShape

图例标记的默认形状。默认为 MarkerShapeRectangle

8、reverseMarkers : bool

图例中的标记是否使用相反的顺序。默认为 false。

9、showToolTips : bool

文本被截断时是否显示工具提示。默认为 false。

四、成员函数

1、【信号】void attachedToChartChanged(bool attached)

当图例附加到图表或从图表分离时,会发出此信号。

2、void attachToChart()

将图例附加到图表。图表可能会调整图例的布局。 

3、void detachFromChart()

从图表中分离图例。

4、bool isAttachedToChart()

图例是否附加到图表。

5、QList<QLegendMarker *> markers(QAbstractSeries *series = nullptr)

返回图例中的标记列表。

6、void setInteractive(bool interactive) / bool isInteractive()

当 interactive 为 true 且图例处于被分离状态时,可以使用鼠标以类似于窗口的方式移动图例并调整其大小。

通过将图例拖离该边缘,图例将自动附加到图表的边缘。双击附加的图例将分离它。

默认为 false。


QLegendMarker

一、描述

QLegendMarker 类是一个抽象类,可用于访问图例中的标记。是 QAreaLegendMarkerQBarLegendMarkerQBoxPlotLegendMarkerQCCandlestickLegendMarkerQPieLegendMarkerQXYLegendMarker 的父类。

图例标记由图标和标签组成:

  • 图标颜色对应于用于绘制图表的颜色。
  • 标签显示曲线的名称(或饼图的切片标签或条形图的条形集的标签)。

图例标记始终与一个曲线、切片或条形集相关。

上图标出来的就是图例标签。

二、类型成员

1、enum QLegendMarker::LegendMarkerType:图例标记对象的类型。

  • LegendMarkerTypeArea:区域图的图例标记。
  • LegendMarkerTypeBar:条形图的图例标记。
  • LegendMarkerTypePie:饼图的图例标记。
  • LegendMarkerTypeXY:曲线、样条线或散点图的图例标记。
  • LegendMarkerTypeBoxPlot:箱型图的图例标记。
  • LegendMarkerTypeCandlestick:烛台图的图例标记。

三、属性成员

1、brush : QBrush

用于填充图标的画刷。

2、font : QFont

标签的字体。

3、label : QString

图例标记显示的文本。

4、labelBrush : QBrush

标签的画刷。

5、pen : QPen

用于绘制图标轮廓的画笔。

6、shape : QLegend::MarkerShape

图例标记的形状。

7、visible : bool

图例标记是否可见。

四、成员函数

1、【信号】void clicked()

单击图例标记时会发出此信号。

2、【信号】void hovered(bool status)

当鼠标悬停在图例标记上时会发出此信号。当鼠标移到标记上时,status 为 true,当鼠标再次移开时,status 为 false。

3、【纯虚函数】QAbstractSeries * series()

返回指向与此图例标记相关的曲线的指针。

4、【纯虚函数】QLegendMarker::LegendMarkerType type()

返回相关曲线、饼图或条形集的图例标记的类型。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QLegendMarkerQt Charts模块中的一个类,用于控制图例中不同图表序列的标记样式。它包含了一些预定义的标记类型,如面积系列、柱状图集、饼图、线、样条曲线或散点图系列、箱形图系列和烛台图系列。每种标记类型都有一个对应的枚举值,可以通过QLegendMarkerType枚举类来访问。 通过QLegendMarker类,可以对图例标记进行交互和控制。可以通过设置标记的图标和标签来自定义图例标记的外观。可以使用QLegendMarker的函数和属性来获取和设置标记的类型、图标和标签等信息。 以下是一个示例代码,演示了如何使用QLegendMarker类来控制图例标记的样式: ```python from PyQt5.QtChart import QChart, QChartView, QLegend, QLegendMarker, QLineSeries from PyQt5.QtWidgets import QApplication, QMainWindow app = QApplication([]) window = QMainWindow() # 创建一个图表和图例 chart = QChart() legend = QLegend() chart.setLegend(legend) # 创建一个线系列 series = QLineSeries() series.append(0, 1) series.append(1, 3) series.append(2, 2) chart.addSeries(series) # 创建一个图例标记并设置其类型为线系列 marker = QLegendMarker(series) marker.setType(QLegendMarker.LegendMarkerTypeXY) # 设置图例标记的图标和标签 marker.setLabel("Line Series") marker.setBrush(series.pen().color()) # 将图例标记添加到图例中 legend.addMarker(marker) # 创建一个图表视图并显示图表 chartView = QChartView(chart) window.setCentralWidget(chartView) window.show() app.exec_() ``` 这段代码创建了一个包含线系列的图表,并在图例中添加了一个图例标记。通过设置图例标记的类型为QLegendMarker.LegendMarkerTypeXY,以及设置图例标记的图标和标签,可以自定义图例标记的样式。最后,将图例标记添加到图例中,并显示图表。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值