GUI Toolkits und Performance

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Sonntag 1. Juni 2008, 10:30

Hi zusammen,

es geht mal wieder um das Thema "... Welches GUI Toolkit nehmen ..." :roll: .
Ich möchte das Thema hier auch nicht übermässig ausdehen, aber ich
hab im GUI Bereich da zu wenig Erfahrung, deshalb die Frage an Euch.

Worum geht es?

Ich brauch ein leistungsfähiges GUI Toolkit, mit dem ich zur Laufzeit
dynamische Messwerte grafisch anzeigen kann. Das sind dann so
signalähnliche Charts. Dabei geht es aber nicht nur um das Anzeigen
der Messwerte, sondern auch das gleichzeitige Zoomen, Vertikal- und
Horizontalscrollen zur Laufzeit... Es sollte auf Win und Linux laufen
und ev. auch auf Mac...

Geht das überhaupt halbwegs vernünftig mit Python?

Ich hab mich ein wenig im Python science Bereich umgesehen, aber
die dortigen Tools wie matplotlib etc. sind ja eher für das erzeugen
von "Bildern" ausgelegt. Klar ist, dass numpy mitverwendet wird
wegen der Vektor Berechnungen für's Skalieren etc.

Im Moment teste ich mit Tkinter, weils einfach überall vorhanden ist.
Aber als End-GUI-Toolkit sehe ich im Moment PyQt4 im Zusammenhang
mit der PyQwt5 Erweiterung. Dort habe ich Beispiele gesehen, die
Leistungsfähig genug sein könnten. Bei PyOpenGl oder solchen
Dingen kenne ich mich im Moment gar nicht aus. Bringt Pygame
vielleicht etwas?


Ich danke für Eure Antworten
Tabellar
lunar

Sonntag 1. Juni 2008, 10:44

tabellar hat geschrieben:Geht das überhaupt halbwegs vernünftig mit Python?
Ja ;)
Im Moment teste ich mit Tkinter, weils einfach überall vorhanden ist.
Tkinter ist zum Zeichnen komplexer Graphen imho schlecht geeignet. Zum einen fehlen einfach die Widgets, zum anderen ist die Zeichenengine nicht beschleunigt, so dass komplexe Zeichenoperationen mitunter sehr langsam ablaufen können.
Aber als End-GUI-Toolkit sehe ich im Moment PyQt4 im Zusammenhang mit der PyQwt5 Erweiterung.
Das wäre auch meine Empfehlung gewesen. PyQt4 selbst ist ein mächtiges und schnelles Toolkit, und Qwt enthält die nötigen Widgets zum Plotten.
Dort habe ich Beispiele gesehen, die
Leistungsfähig genug sein könnten. Bei PyOpenGl oder solchen
Dingen kenne ich mich im Moment gar nicht aus. Bringt Pygame
vielleicht etwas?
Natürlich lässt sich sowas auch in PyGame und PyOpenGL realisieren, nur eben sehr, sehr aufwendig, weil du vieles selbst schreiben musst. Auch bringt es keinen wirklichen Vorteil. Zeichenoperationen sind in den meisten modernen Toolkits bereits Hardware-beschleunigt, zumindest in Qt4 und Gtk+ (welches WxWidgets unter Linux nutzt).
Zuletzt geändert von lunar am Sonntag 1. Juni 2008, 13:30, insgesamt 1-mal geändert.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sonntag 1. Juni 2008, 11:07

matplotlib kann man auch realtime verwenden. ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Sonntag 1. Juni 2008, 11:28

@lunar:
Danke lunar, es scheint, dass ich auf dem richtigen Weg bin ... ;-)

@veers:
veers hat geschrieben:matplotlib kann man auch realtime verwenden. ;)
Das hab ich auch gelesen, aber wie würde das denn dann aussehen?
In welchem Toolkit eingebettet? Kann ich dann, wenn ich Messdaten
empfange, die dann mit Matplotlib realtime anzeigen, also Messpunkt
für Messpunkt nacheinander ... und dann auch mal zwischendurch
zoomen, srollen etc. :roll:

Matplotlib ist schon mächtig, auch im Zusammenhang mit Cairo etc., kenn
mich aber auch da zu wenig aus ... Ich denke aber, man kann damit gute
Outputs erzeugen... (Bilder, PDFs, etc.)

Tabellar
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Sonntag 1. Juni 2008, 12:19

Hier in dem Board oft erwähnt wird auch noch wxPython.
Demzufolge, was man hier so liest, müsste das auch damit gut machbar sein.
Und gerold hilft dir dann auch sicher gerne ;)
lunar

Sonntag 1. Juni 2008, 13:30

Karl hat geschrieben:Hier in dem Board oft erwähnt wird auch noch wxPython.
Demzufolge, was man hier so liest, müsste das auch damit gut machbar sein.
Und gerold hilft dir dann auch sicher gerne ;)
Ich glaube nicht, dass wx hier weiterhilft, denn soweit ich weiß gibt es keine Bibliothek für wx, deren Widgets mit dem von Qwt Gebotenen mithalten können.

@tabellar
Ich sollte vielleicht erwähnen, dass ich Qwt noch nie selbst für derartiges eingesetzt habe. Ich habe nur die Features-Seite der Website gesehen, und Lobendes von anderen gehört. ;)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 1. Juni 2008, 15:32

Hallo tabellar!

Matplotlib http://matplotlib.sourceforge.net/ lässt sich auch in wxPython einbinden. Das ist zwar kein schönes Beispiel, aber es sollte funktionieren: http://paste.pocoo.org/show/58976/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Sonntag 1. Juni 2008, 18:00

hallo, welches gtk muss man für win32 und python 2.5 installieren, damit die programme von matplotlib laufen?

mfg
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Sonntag 1. Juni 2008, 23:35

Ok, vielen Dank für Eure Antworten :P ! Ich werd mich dann
wohl mal der Qt Schiene zuwenden ...

Tabellar
Antworten