Показывать точки в QCustomPlot с QCPItemTracer

Сейчас я пытаюсь создать механизм, который будет создавать текстовые метки рядом с моими точками на графике с координатами. Из документации я прочитал, что для этого мне нужно использовать QCPItemTracer. Независимо от того, как я стараюсь, я не могу отображать какие-либо дополнительные элементы на своем графике, используя этот объект. В примерах QCustomPlot есть одна программа, которая использует QCPItemTracer, но когда я ее запускаю, я также не вижу никаких дополнительных объектов. Я пытаюсь запустить пример кода из приведенного ниже:

QCPItemTracer *phaseTracer = new QCPItemTracer(customPlot);
customPlot->addItem(phaseTracer);
phaseTracer->setGraph(customPlot->graph(DATA_PLOT));
phaseTracer->setGraphKey(7);
phaseTracer->setInterpolating(true);
phaseTracer->setStyle(QCPItemTracer::tsCircle);
phaseTracer->setPen(QPen(Qt::red));
phaseTracer->setBrush(Qt::red);
phaseTracer->setSize(7);

Из моего понимания это должно было добавить красные круги на моих точках сюжета. Это не. Я бы действительно оказал любую помощь в этом вопросе, возможно, пример кода. Я борюсь с этим очень долго.

2

Решение

Мне удалось заставить работать этикетки:

returnCodes_t PlotData::insertPointLabel(const int& index, const double& x, const double& y)
{
QCPItemText *textLabel = new QCPItemText(m_parentPlot);
m_parentPlot->addItem(textLabel);
textLabel->setPositionAlignment(Qt::AlignBottom|Qt::AlignHCenter);
textLabel->position->setType(QCPItemPosition::ptPlotCoords);
textLabel->position->setCoords(x, y); // place position at center/top of axis rect
textLabel->setText(QString("x%1 y%2").arg(x).arg(y));
textLabel->setVisible(labelsVisible);
m_pointLabels.insert(index, textLabel);

return return_success;
}
0

Другие решения


По вопросам рекламы [email protected]