Seite 1 von 1

qwt: Frage zu scrollen auf Zeitachse

Verfasst: 4. Dezember 2009 09:23
von topo
Hallo Qt - und qwt - Nutzer,

ist es möglich mit qwt eine Art Scope nachzubauen, mit dem man auch Langzeitmessungen aufnehmen kann und dann nicht ein Bild mit allen Messpunkten hat, sondern eine Zeitbasis x anzeigt und mit scrollen auf der Zeitachse die anderen Messpunkte sich anschauen kann?

Beispiel ist hier das Oszi: Wird getriggert sieht man den bereich mit dem Trigger in der Mitte. Nun kann kann der Bereich links und rechts vom Trigger angeschaut werden, indem man auf der x-Ache scrollt. Zudem ist die Zeitbasis verstellbar (kein Zoom mit x- und y-Achse, sondern nur x-Achse) , um eine eine größere zeispanne einzublenden. Gibt es eine solche Funktion schon in qwt / qwt_plot ?

Danke für Eure Hilfe!

Viele Grüße,
Thomas

Verfasst: 4. Dezember 2009 10:32
von archer
Man kann eine art scope damit bauen, mache ich auch.
Simplester Anatz für dich:
-Alle Daten in den Plot einfügen
-Zeitachse setzen, setAxisScale(xBottom, min, max), die du sehen willst.
Müsste so gehen.

Verfasst: 4. Dezember 2009 10:43
von topo
Danke für die Info, hört sich ja schon mal sehr gut an :D.

Kann Du in deinem Plot-Widget auch scrollen (z.B. Horizontaler Scrollbalken) oder hast Du Buttons für links / rechts und baust den Plot jedesmal neu auf?

Verfasst: 4. Dezember 2009 11:04
von archer
Eine Scrollfunktion habe ich nicht.

Aber wenn die Daten im Plot sind müsste ein

Code: Alles auswählen

setAxisScale(xBottom, min, max);
replot();
ausreichen.
Es sollte dann jeweils dur der entsprechende Ausschnitt gezeichnet werden.

Versprechen kann ich nichts, musst du probieren.

Verfasst: 4. Dezember 2009 11:32
von topo
Danke für den Hinweis, werde ich versuchen :wink: .

Thomas

Verfasst: 5. Dezember 2009 10:39
von Uwe
Zum Scrollen, Panning oder andere Formen der Navigation gibt es Helferklassen ( QwtPlotZoomer, QwtPlotPanner, QwtPlotMagnifier ), mit denen das ganz einfach geht. Schau Dir einfach mal die Qwt Beispiele an ( z.B. realtime, bode oder spectrogram ). Das realtime Beispiel enthält sogar einen speziellen Zoomer, der Scrollbalken anbietet.

Solange Du auf einem statischen Inhalt navigierst, sollte das alles recht einfach gehen - schwieriger wird es wenn Du die Achsen hinter dem Rücken eines Zoomer Objects manipulieren willst.

HTH,
Uwe

Verfasst: 7. Dezember 2009 17:29
von topo
Hallo Uwe,

danke für die Info, werde mir die Beispiele genauer anschauen.

Kannst Du mir noch kurz die Schwiegigkeiten bei einem dynamischen Datensatz, der sich zur Laufzeit aktualisieren sollte, mitteilen? Ich habe in meiner Anwendung beide Fälle (statischer und dynamischer Inhalt) zu berücksichtigen, allerdings auf getrennten Plot Widgets.

Viele Grüße,
Thomas

Verfasst: 9. Dezember 2009 08:45
von Uwe
Solange Du keine Bildwiederholraten anstrebst, in denen ein vollständiger replot() zu lange dauert, gibt es eigentlich nichts zu beachten.

Schau Dir einfach mal das cpuplot Beispiel an,
Uwe