【发布时间】:2019-01-04 08:26:47
【问题描述】:
我有一个 QwtPlot,里面有几行。它也有一个传说。
现在除了线本身的描述之外,我想添加额外的文本来描述图表。
例如“a 行:青蛙的长度,b 行:青蛙的重量”,然后作为额外的“外部温度为 12C”(然后不绘制温度)。
【问题讨论】:
-
那么您目前有任何“手动”图例设置代码,还是留给自动?
-
目前是全自动的。
我有一个 QwtPlot,里面有几行。它也有一个传说。
现在除了线本身的描述之外,我想添加额外的文本来描述图表。
例如“a 行:青蛙的长度,b 行:青蛙的重量”,然后作为额外的“外部温度为 12C”(然后不绘制温度)。
【问题讨论】:
图例中QwtPlot的描述是QwtLegendData。在QwtPlotItem doc(它是所有 QwtPlots 的超类)中进一步:
QwtLegendData 基本上是一个 QVariants 列表,可以重载和重新实现 legendData() 以返回几乎任何类型的信息,充当图例的接收器可以理解这些信息。
因此,您需要做的就是从图中提取现有的“自动”图例,然后再添加一个 QwtLegendData。它还需要一个 QVariant 作为“键”来区分每个图的数据,但它实际上可以是任何与真实图的键不同的东西。如果您不打算添加更多此类额外文本,即使默认(空)QVariant() 也可以。
QwtLegendData data;
data.setValue(QwtLegendData::Role::TitleRole, QVariant("Outside temperature is 12C"));
QList<QwtLegendData> list;
list << data;
QwtAbstractLegend* existingLegend = frogPlot.legend();
// "update" with a new key really means "insert"
existingLegend->updateLegend(QVariant("Temperature comment extra text"), list);
【讨论】: