Qt jak w wersji 5.x zaimplementowac "MarkerSize" ktory pojawił sie w 6.2 (własne rysowanie punktu)

0

W nowszym Qt od 6.2 pojawiło się "setMarkerSize" oraz "setLightMarker"
https://doc.qt.io/qt-6/qxyseries.html#setMarkerSize
https://doc.qt.io/qt-6/qxyseries.html#setLightMarker

jak w trochę starszym Qt narysować punkt na wykresie we własnym zakresie ?
Bo zrobiłem sobie piękny widet który wykorzystuje setMarkerSize tylko nie zwróciłem uwagi na drobny szczegół że mam Qt 5.x

image

0

Lepszy rydz niz nic QXYSeries::setPointsVisible()
Rozmiar znacznika jest na sztywno ustawiony jako 2x grubość linii wykresu !

Jak ktoś umie zrobić to lepiej to poproszę o rade

#include <QApplication>
#include <QChartView>
#include <QLineSeries>
#include <random>

QT_CHARTS_USE_NAMESPACE

class LineSeries: public QLineSeries{
public:
    LineSeries(QObject *parent = nullptr):
        QLineSeries(parent)
    {
        connect(this, &QXYSeries::clicked, this, &LineSeries::onClicked);
    }
private slots:
    void onClicked(){
        QPen p = pen();
        p.setWidth(p.width()+1);
        setPen(p);
    }
};

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

    QChart *chart = new QChart();
    chart->legend()->hide();

    chart->setTitle("Simple line chart example");

    std::random_device rd;     // only used once to initialise (seed) engine
    std::mt19937 rng(rd());
    std::uniform_int_distribution<int> uni(0, 10);

    for(size_t i=0; i< 3; i++){
        LineSeries *series = new LineSeries();
     //   series.
//        / series->setMarkerSize(marker_size);
        for(size_t j=0; j < 4; j++){
            *series << QPointF(j, uni(rng));
        }
        series->setPointsVisible();
        chart->addSeries(series);
    }
    chart->createDefaultAxes();

    QChartView chartView(chart);
    chartView.setRenderHint(QPainter::Antialiasing);
    chartView.resize(640, 480);
    chartView.show();

    return a.exec();
}

image

1

Alternatywne rozwiązanie
Qwt - Qt Widgets for Technical Applications
W forku dodałem pliki cmake

image
image

1 użytkowników online, w tym zalogowanych: 0, gości: 1