Seite 1 von 1
QwtPlotZoomer mit zwei Y-Achsen
Verfasst: 24. März 2009 00:51
von effendi
Hallo zusammen,
ich bin gerade an der Umsetzung eines kleinen Projektes, welches verschiedene Daten in einem QwtPlot darstellen soll. Das klappt soweit auch wunderbar und mithilfe der Qwt-Examples hab ich auch eine Zoom-Funktion hinbekommen. Nun gibt's aber ein Problem.
Ich benötige zwei verschiedene Y-Achsen. Beim Zoomen skaliert aber nur die eine. Gibt es eine Möglichkeit mit QwtPlotZoomer auch die andere passend zu skalieren?
Vielen Dank schonmal für Eure Hilfe,
beste Grüße aus Kanada,
Christian
Verfasst: 24. März 2009 20:06
von Uwe
Einfach einen 2. Zoomer ohne Gummiband und Tracker nehmen. ( Siehe Bode Beispiel).
Uwe
Verfasst: 24. März 2009 21:10
von effendi
Hallo Uwe,
vielen Dank für Deine Antwort.
Genau so hab ich's auch schon probiert.
Das Zoomen funktioniert dann zwar, jedoch bekomm ich mit den Scrollbalken Probleme. Es bewegt sich nur der Plot, der mit dem anderen Zoomer verbunden ist
Ich verwende Deinen Scroll-Zoomer aus dem Realtime-Plot-Beispiel als Vorlage.
An dieser Stelle auch nochmal ganz herzlichen Dank für die wunderbare Bibliothek und die zahlreichen Beispielprojekte.
Hättest Du eine Idee, wie ich die Scrollbalken mit beiden Zoomern verbinden kann?
Sprich: Es soll so aussehen als, wenn einfach durch die Leinwand gezoomt/gescrollt wird, unabhängig davon, ob die Plots der linken/rechten Achse/Zoomer zugeordnet sind.
Beste Grüße,
Christian
Verfasst: 25. März 2009 15:24
von effendi
Da mich meine Lösungsversuche schon zahlreiche schlaflose Nächte gekostet haben, und der Abgabetermin meiner Semesterarbeit näherrückt, bin ich händerringend auf der Suche nach einer Lösung für o.g. Problem.
Leider bin ich relativ neu in der QT-Programmierung und mit meinem Latein am Ende.
Sollte jemand daher einen praktikablen Lösungsansatz kennen, bzw. über ein Codebeispiel verfügen, revanchiere ich mich gerne mit einem kleinen Amazon-Gutschein.
Tausend Dank - Ich freue mich auf Eure Lösungsvorschläge!
Verfasst: 26. März 2009 07:17
von Uwe
Jede Veränderung einer Achse wird durch ein QwtScaleWidget::scaleDivChanged Signal bekannt gegeben. Also versuch es doch mal mit nur einem Zoomer für die linke Achse. Die rechte Achse synchronisierst Du dann proportional ( 3-Satz + setAxisScale() ) in einem Slot, der am scaleDivChanged() Signal der linken Achse hängt.
Uwe