Qwt Plot



  • Versuche gerade mit Qwt 3 Werte zu plotten. Jedoch gibt
    error C2660: 'QwtPlotSeriesItem<T>::setData': Funktion akzeptiert keine 3 Argumente
    aus. Das dürfte aber nicht passieren.
    Erstellt wurde das Widget im QT Designer.

    class tpopt : public QMainWindow
    {
    Q_OBJECT
    
    public:
    	tpopt(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~tpopt();
    	QwtPlotCurve *curve1;
    …
    public slots:
    void plot1();
    }
    
    tpopt::tpopt(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
    {
    	curve1 = new QwtPlotCurve();
    	curve1->attach(ui.qwtPlot);
    …}
    
    void tpopt::plot1()
    {
    
    double x1[3]={1,2,7};
    double y1[3]={1,2,3}; 
    
    curve1->setData(x1,y1, 3);  <------------------------
    
    ui.qwtPlot->replot();
    }
    




  • aaah, DANKE

    läuft 🙂



  • Versuche gerade einen realtime plot durchzuführen. Funktioniert schon ganz gut jedoch ist der erste Punkt mit dem letzten verbunden.

    Wie bekomme ich das weg?

    lg



  • Die Reihenfolge deiner Datenpunkte geht exakt von Links nach Rechts?





  • Ich würde mal behaupten, wird am Ende noch ein zusätzlichen (0,0) geplotet



  • ne leider nicht habe es nochmal mit eigenen Werten getestet.
    Er verbindet einen neuen Wert sofort mit dem aller ersten.

    // Die Variablen
    int sx=0;
    const int Size=27;
    double xval[Size];
    double yval[Size];
    
    //Die plotfunktion
    void tpopt::plot1()
    {
    xval[sx]=sx;
    yval[sx]=thread1.ywertplot1;
    
    curve1->setSymbol(new QwtSymbol(QwtSymbol::Cross, Qt::NoBrush,
    QPen(Qt::black), QSize(5, 5) ) );
    curve1->setPen(QColor(Qt::darkGreen));
    curve1->setStyle(QwtPlotCurve::Lines);
    curve1->setRawSamples(xval, yval, Size);
    sx++;
    
    Edit: Vielen Dank für die Hilfe
    Fehler gefunden. 
    Das Ding ist weiß nicht wie viele Werte noch kommen. Wenn Size größer ist als die Anzahl der Werte dann verbindet er es.
    curve1->setRawSamples(xval, yval, sx);
    sx++;
    Läuft jetzt.
    
    }
    

Log in to reply