Seite 1 von 1

[gelöst] Messwerte zeichnen

Verfasst: 14. Juni 2010 11:02
von Cabo
Hallo,
ich habe aus diversen Messungen Messwerte im Hexadezimalformat vorliegen. Diese würde ich nun gerne grafisch darstellen. Meine erste Überlegung ging zum QPainter.
Ich habe also eine eigene Widget-Klasse geschrieben und mit path.moveTo bzw path.lineTo die Messkurven gezeichnet. Das funktionierte für kleine Messungen (so ca. 100 - 200 Messwerte) auch ganz gut, nur sobald es größer wird stoße ich da an Probleme. Ist QPainter vllt. auf 1000 Punkte beschränkt? eim Debuggen habe ich festgestellt, dass die Path-Variable bei 1000 Items 'stoppt' und im Endeffekt wird gar nichts gezeichnet.
Gibt es vllt eine gute Alternative zu diesem Problem? Ich müsste so bis 100000 Werte zeichnen können.

Vielen Danke schon mal :)

Verfasst: 14. Juni 2010 11:08
von Christian81
QWT würde ich mir da mal anschauen.

Verfasst: 14. Juni 2010 12:25
von upsala
Du willst wahrscheinlich ein Liniendiagram zeichnen. Bist du dir da sicher, daß du da 100000 Linien auf den Bildschirm bringst? Ich würde die Daten vorverarbeiten und dann erst auf dem Bildschirm bringen. Man kann mit QPainter ohne weiteres mehr als 1000 Linie zeichnen. Blos halt nicht am Stück.

Verfasst: 14. Juni 2010 12:33
von Cabo
hi
danke für eure antworten.
ich möchte tatsächlich 100000 Linien 'am Stück' zeichnen, sodass am Ende quasi eine Messkurve für die betrachtete Messung rauskommt.
Die qwt Klasse sieht zumindest schon mla gut aus. Momentan stecke ich noch an einigen Compilierungs Problemen, aber die kriege ich hoffentlich bald in den Griff. Ich melde mich auf jeden Fall dann ob es geklappt hat.
In der zwischenzeit bin ich natürlich für jede Anregung Dankbar.

Verfasst: 15. Juni 2010 10:38
von Cabo
EDIT: Ok, ich war eben Mittag essen, hab danach aus Frustration einfach auf Compile geklicktund jetzt gehts oO. Ich widme mich also wieder dem Plotten zu

Hallo,

ich habe mir die Beispiele jetzt mal angeguckt und soweit versucht in mein Projekt einzubinden.
Leider erscheint beim compilieren folgender Fehler:

Code: Alles auswählen

./debug/moc_displaywidget.o:moc_displaywidget.cpp:(.text$_ZN13DisplayWidgetD1Ev[DisplayWidget::~DisplayWidget:-1: error: undefined reference to `QwtScaleMap::~QwtScaleMap()'
Ich bin bereits alles durchgegangen, wo ich dachte, dass der Fehler da liegen könnte. Die dlls sind richtig und mit dem gleichen Compiler compiliert, über den Dependency Walker wurden alle benötigten dlls gefunden.
In meinem pro.File habe ich folgendes zugefügt:

Code: Alles auswählen

win32:LIBS +=  -LC:/Qt/2010.02.1/qt/plugins/sqldrivers/qsqlpsqld4.dll \
    -LC:/Qwt-5.2.1/lib/qwtd5.dll \
    -LC:/Qwt-5.2.1/designer/plugins/designer/qwt_designer_plugind5.dll

INCLUDEPATH +=+    C:/Qwt-5.2.1/designer/plugins/designer \
            C:/Qwt-5.2.1/lib \
win32:DEFINES =+ _TTY_WIN_ \
    QWT_DLL \
    QT_DLL
Ich habs auch jeweils mir Debug und Release Mode versucht, aber irgendwie komm ich da nicht weiter. Hat jemand eine Idee?

Verfasst: 16. Juni 2010 00:03
von Uwe
Syntaxfehler vermeiden: nur mit "+=" wirst Du etwas sinnvolles bewirken.

Uwe

Verfasst: 16. Juni 2010 09:07
von Cabo
ja, das hab ich gestern auch schon gesehen ;) danke aber trotzdem. bis jetzt funktioniert alles wunderbar. ich werde den beitrag als gelöst markieren.
danke auch für den tipp mit qwt :)