如何在标记上指定符号位置?

时间:2014-06-03 20:06:20

标签: qt qwt

我正在使用Qwt库。我在情节上添加了垂直QwtPlotMarker。我想将QwtSymbol添加到marker,我希望symbol位于marker的底部。当我使用setSymbol()时,它会将符号放在标记的中间。有setLabelAlignment()函数可指定标签的绘制位置。不幸的是,我没有为symbol找到类似的东西。我已阅读Qwt User's Guide,其中我找到了:The setSymbol() member assigns a symbol to the marker. The symbol is drawn at the specified point.那么,如何指定该点?

1 个答案:

答案 0 :(得分:2)

这是一个非常古老的问题,但我找到了解决方案,我想与您分享。

有办法指明这一点。方法setValue(double x,double y)执行此操作,但此方法未在文档中描述(对我来说非常奇怪),但此方法有效!

我写了一些小但有用的片段。如果我理解正确,这段代码完全符合您的需要

   QwtSymbol *sym=new QwtSymbol(QwtSymbol::Diamond,QBrush(Qt::red),QPen(Qt::red),QSize(5,5));
   //create the symbol
   QwtPlotMarker *mark=new QwtPlotMarker;
        mark->setSymbol(sym);

        mark->setLineStyle(QwtPlotMarker::VLine);
        //set vertical line

        mark->setValue(5,ui->qwtPlot->axisInterval(QwtPlot::yLeft).minValue());
        //here you have to set the coordinate axis i.e. where the axis are meeting.
        //as you can see I set coordinate 5 and the lowest coordinate of Y axis
        //you can set here needed coordinates

        mark->attach(ui->qwtPlot);

我希望,这有帮助。