qwt:如何在图例中添加额外的文本

qwt: how to add extra text in legend

我有一个 QwtPlot,里面有几行。它还有一个传说。

现在除了线条本身的描述之外,我想添加额外的文字来描述一般的图表。

例如"line a: length of frog, line b: weight of frog" 然后作为额外的 "outside temperature is 12C" (然后不绘制温度)。

图例中显示的 QwtPlot 的描述是 QwtLegendData. Further in the QwtPlotItem doc(它是所有 QwtPlots 的超类):

QwtLegendData is basically a list of QVariants that makes it possible to overload and reimplement legendData() to return almost any type of information, that is understood by the receiver that acts as the legend.

因此,您所需要做的就是从情节中提取现有的 "automated" 图例,然后再添加一个 QwtLegendData。它还需要一个 QVariant 作为 "key" 来区分每个图的数据,但它实际上可以是与实际图的键不同的任何东西。如果您不打算添加更多此类额外文本,即使默认(空)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);