2016-03-17 2 views
1

Я пытаюсь настроить LineChart example из библиотеки Qt Charts. Вот код:Как настроить пример LineChart из Qt Charts?

#include <QtWidgets/QApplication> 
#include <QtWidgets/QMainWindow> 
#include <QtCharts/QChartView> 
#include <QtCharts/QLineSeries> 

QT_CHARTS_USE_NAMESPACE 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    QLineSeries *series = new QLineSeries(); 

    series->append(0, 6); 
    series->append(2, 4); 
    series->append(3, 8); 
    series->append(7, 4); 
    series->append(10, 5); 
    *series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2); 

    QChart *chart = new QChart(); 
    chart->legend()->hide(); 
    chart->addSeries(series); 
    chart->createDefaultAxes(); 
    chart->setTitle("Simple line chart example"); 

    QChartView *chartView = new QChartView(chart); 
    chartView->setRenderHint(QPainter::Antialiasing); 

    QMainWindow window; 
    window.setCentralWidget(chartView); 
    window.resize(400, 300); 
    window.show(); 

    return a.exec(); 
} 

Я хочу, чтобы изменить схему таким образом, что я могу нарисовать точку в некоторых х, у пары в другом цвете. Теперь я попытался изменить цвет линии диаграммы, и он работает, но это не та диаграмма, которую я хочу изменить, а цвет точки в x, y. Таким образом, я думаю, мне придется сначала добавить точки в диаграмму, но, по-видимому, API дает мне только метод append(), а не что-то вроде drawPoint(). Что мне нужно сделать, чтобы получить эту функциональность? Уже доступно, и я просто не вижу его?

+0

Что вы имеете в виду, добавляя точки к каждой x, y паре? Также было бы очень приятно, если бы вы могли ссылаться на пример и, возможно, также нарисовать эскиз того, как он должен выглядеть в конце. – Trilarion

+0

Вы были правы, я изменил вопрос. Надеюсь, теперь все ясно. – JohnnyFromBF

ответ

0

Если все, что вы хотите сделать, это добавить точки на график в определенных местах, то QScatterSeries - лучший способ сделать это. Насколько я знаю, если вы хотите, чтобы каждая точка была отдельным цветом, они должны содержаться в отдельной серии, так как вся серия будет иметь одни и те же свойства.

QScatterSeries* redSeries = new QScatterSeries; 
redSeries->append(0, 6); 
redSeries->append(2, 4); 
redSeries->setColor(Qt::red); 

QScatterSeries* blueSeries = new QScatterSeries; 
blueSeries->append(3, 8); 
blueSeries->append(7, 4); 
blueSeries->append(10, 5); 
blueSeries->setColor(Qt::blue); 

... 

chart->addSeries(redSeries); 
chart->addSeries(blueSeries); 
Смежные вопросы