Seite 1 von 1

GUI Toolkits und Performance

Verfasst: Sonntag 1. Juni 2008, 10:30
von tabellar
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

Re: GUI Toolkits und Performance

Verfasst: Sonntag 1. Juni 2008, 10:44
von lunar
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).

Verfasst: Sonntag 1. Juni 2008, 11:07
von veers
matplotlib kann man auch realtime verwenden. ;)

Verfasst: Sonntag 1. Juni 2008, 11:28
von tabellar
@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

Verfasst: Sonntag 1. Juni 2008, 12:19
von Karl
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 ;)

Verfasst: Sonntag 1. Juni 2008, 13:30
von lunar
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. ;)

Verfasst: Sonntag 1. Juni 2008, 15:32
von gerold
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
:-)

Verfasst: Sonntag 1. Juni 2008, 18:00
von sechsrad
hallo, welches gtk muss man für win32 und python 2.5 installieren, damit die programme von matplotlib laufen?

mfg

Verfasst: Sonntag 1. Juni 2008, 23:35
von tabellar
Ok, vielen Dank für Eure Antworten :P ! Ich werd mich dann
wohl mal der Qt Schiene zuwenden ...

Tabellar