GUI Toolkit welches ist das richtige?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Sonntag 6. Januar 2008, 16:34

Hallo Leute,

Ich arbeite momentan an einem kleinen Projekt, bisher war es eine reine Shell Anwendung. Ich möchte jetzt meiner Anwendung eine GUI verpassen. Ich kann mir vorstellen das es diese Fragen schon recht häufig gab, aber ich stell sie trotzdem.

Ich suche das perfekte Toolkit für mein Projekt. Es ist bisher eine Art TODO Listen Programm, was evtl irgendwann zu einem Kalender Programm zur Aufgaben und Terminverwaltung werden soll. Das heißt die grafische Oberfläsche soll später leicht erweiterbar sein.

Jetzt frage ich mich ob ich der einfachheithalber Tkinter oder doch ein wenig Arbeit investieren sollte und wxPython nehmen sollte.

allerdings muss ich sagen das wxPython, für mich momentan eine recht komplexe Materie darstellt. Ich finde bspweise die Doku ziemlich unübersichtlich, auch sonst gibt es meiner Meinung nach nur beschränkt gutes Lehrmaterial.

Vllt könnt ihr mir ja Helfen. Vielleicht gibt es noch eine Alternative zu den beiden Toolkits, die ich noch nicht kenne, die aber evtl. doch attraktiv und passend sein könnte.

Mit freundlichen grüßen

bankkind

Edit (Leonidas): Verschoben
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Sonntag 6. Januar 2008, 16:43

Hi bankkind!

Also der Thread ist schonmal unguenstig positioniert, wo wir hier doch extra fuer alle moeglichen GUI-Toolkits Threads hier haben.

Aber um zu deiner Frage zu kommen:
Es gibt keine richtige Antwort darauf, die auch eindeutig auf ein bestimmtes GUI-Toolkit verweisen kann.

Fuer eine Anwendung wie du sie nanntest (beschrieben waere zuviel gesagt), duerfte Tkinter genau so geeignet sein, wie wxPython.
Ich persoenlich kenne mich nur mit wxPython aus und verweise daher auf die Demo, die IMHO sehr gut zeigt, was moeglich ist und wie es gemacht wird und wuensche dir viel Spaß und Erfolg mit deiner GUI.

Gruß
nkoehring
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 6. Januar 2008, 18:14

bankkind hat geschrieben:allerdings muss ich sagen das wxPython, für mich momentan eine recht komplexe Materie darstellt. Ich finde bspweise die Doku ziemlich unübersichtlich, auch sonst gibt es meiner Meinung nach nur beschränkt gutes Lehrmaterial.
Hallo bankkind!

Die Doku von wxPython ist nicht schlecht. Man muss sich nur das "wxPython in Action"-Buch http://www.python-forum.de/topic-12878.html kaufen. Und auf einmal wird wxPython sogar einfach und (fast) durchgehend logisch... ;-)

Du hast uns nicht gesagt, unter welchen Betriebssystemen dein Programm hauptsächlich laufen soll.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Sonntag 6. Januar 2008, 18:51

bankkind hat geschrieben:Jetzt frage ich mich ob ich der einfachheithalber Tkinter oder doch ein wenig Arbeit investieren sollte und wxPython nehmen sollte.
Tkinter würde ich nicht empfehlen, da diesem Toolkit komplexere Widgets wie z.B. Kalender und Datumsfelder fehlen.

Es gibt wohl drei GUI-Toolkits, die weit verbreitet und empfehlenswert sind:
  • wxWidgets
  • Qt4
  • Gtk
Alle drei Toolkits stehen für Windows und Linux zur Verfügung, alle drei Toolkits sind geeignet, um damit komplexe GUIs beliebiger Größenordnung zu erstellen, für alle drei Toolkits gibt es gute GUI-Designer, etc.

Wie du siehst, sind diese Toolkits äquivalent. Die Wahl hängt also hauptsächlich davon ab, für welches System/DE du programmieren willst, und was zu dir am besten passt.

Ich würde dir empfehlen, ein einfaches Beispielprogramm in allen drei Toolkits zu implementieren, dann siehst du schnell, wo deine Präferenzen liegen.

Ansonsten hängt die Wahl auch davon ab, welches DE du verwendest. Für mich als überzeugtem KDE-Anhänger führt wohl kein Weg an Qt4 vorbei, für Gnome-User steht wohl nur Gtk zur Wahl ;)
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Sonntag 6. Januar 2008, 20:05

DE ... *hust* => Desktop Environment :roll:
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Sonntag 6. Januar 2008, 20:08

nkoehring hat geschrieben:DE ... *hust* => Desktop Environment :roll:
Äh ... ja ... und nu?
BlackJack

Sonntag 6. Januar 2008, 21:11

Und nu wissen das auch Leute die mit der nicht *so* gebräuchlichen Abkürzung nichts anfangen können. Für Windowsianer ist eine Unterteilung des "Betriebssystems" in Betriebssystem und GUI ja schon exotisch. ;-)
lunar

Sonntag 6. Januar 2008, 21:19

BlackJack hat geschrieben:Und nu wissen das auch Leute die mit der nicht *so* gebräuchlichen Abkürzung nichts anfangen können. Für Windowsianer ist eine Unterteilung des "Betriebssystems" in Betriebssystem und GUI ja schon exotisch. ;-)
Desktop Environment ist halt so lang, aber nun gut, das nächste Mal schreib ich's aus für unsere lieben Freunde vom anderen Stern ;) Man möge mir meine Faulheit verzeihen...
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

Sonntag 6. Januar 2008, 22:31

Eigentlich wollte ich in Tkinter proggen.
Aber da jetzt hier eine Diskussion darüber läuft, mit Sicherheit nicht die erste, will ich doch ein wenig nachfragen.
Wo ich doch derzeit, was GUI betrifft, noch offen für alles bin bzw. unerfahren.

Folgende Fragen liegen mir da auf der Zunge:

Welche GUI läuft auf allen Systemen?
Aber insbesondere auf Linux, unabhängig von Gnome (was ich benutze), KDE oder XCF (? heißt das 3. so?).
Und auch auf Windos/XP, wenn möglich.

Wenn ich das richtig verstanden habe, ist nur Tkinter von Anfang an dabei bei Python?

Können die anderen GUI etwas, was man mit Tkinter selbst auf Umwegen nicht bewerkstelligen kann?
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
lunar

Sonntag 6. Januar 2008, 22:55

Erwin hat geschrieben:Welche GUI läuft auf allen Systemen?
Jedes der bisher erwähnten Toolkits Qt4, PyGtk wxWidgets und Tkinter läuft sowohl unter Linux als auch unter Windows.
Wenn ich das richtig verstanden habe, ist nur Tkinter von Anfang an dabei bei Python?
Ja.
Können die anderen GUI etwas, was man mit Tkinter selbst auf Umwegen nicht bewerkstelligen kann?
Tkinter fehlen verschiedene komplexere Widgets wie z.B. Kalender, Datumsfelder, Rich-Text-Editor, HTML-Viewer, etc. Natürlich kann man diese auf Umwegen nachrüsten, in dem sie selbst programmiert, nur ist das extrem aufwändig. Auch sind die vorhandenen Tk-Widgets nicht so mächtig wie ihre Pendants in anderen Toolkits. Hinzu kommt, das Tk bis zum aktuellen Release keine Unterstützung für natives Look n' Feel hatte, Tk-Anwendungen übernahmen z.B. nicht den Windows XP oder Windows Vista Stil.

Ich persönlich würde eher mit anderen Toolkits programmieren, auch weil diese das Programmieren komplexerer GUIs besser unterstützen, in dem sie komfortable Patterns unterstützen. Qt4 z.B. unterstützt durchweg das MFC-Pattern für List Views sowie Actions, um Toolbars und Menüs einheitlich aufzusetzen. Tk kennt sowas nicht.

Nach meiner Erfahrung kommt man mit Tk bei kleinen GUIs schneller zum Ziel, dafür ist Tk umso umständlicher, je komplexer die GUI wird.
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

Montag 7. Januar 2008, 00:21

lunar hat geschrieben: Tkinter fehlen verschiedene komplexere Widgets wie z.B. Kalender, Datumsfelder, Rich-Text-Editor, HTML-Viewer, etc. Natürlich kann man diese auf Umwegen nachrüsten, in dem sie selbst programmiert, nur ist das extrem aufwändig. Auch sind die vorhandenen Tk-Widgets nicht so mächtig wie ihre Pendants in anderen Toolkits. Hinzu kommt, das Tk bis zum aktuellen Release keine Unterstützung für natives Look n' Feel hatte, Tk-Anwendungen übernahmen z.B. nicht den Windows XP oder Windows Vista Stil.
Was meinst Du damit, dass die Pendants nicht so mächtig sind?

Achja, das mit dem Stil habe ich mir mal angesehen.
Also so weit ich das sehen konnte, passt sich Tkinter durchaus dem Stil des aktuellen Destops an.
Von Form und Farbe.
Habe es jetzt aber nur unter Linux getestet.
Dafür aber das Testprogramm per Konsole aufgerufen, um Einflussnahme Seite der IDLE auszuschließen.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Montag 7. Januar 2008, 00:23

Berücksichtigen sollte man bei der Wahl eines UI-Toolkits sicherlich auch die Lizenz.

Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz. Wenn man die eigene Software nicht auch unter der GPL zur Verfügung stellen will, kann das ein Problem sein.

Wx scheint eine Variante der GPL zu benutzen, die (ähnlich wie Classpath und OpenJDK) erlaubt, die Binärversion der Bibliothek eigenen Anwendungen beizulegen, ohne dass diese Anwendung unter der selben Lizenz stehen muss.

Bei Tk würde ich erwarten, dass ich das so wie Python selbst benutzen kann.

Stefan
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

Montag 7. Januar 2008, 00:24

Danke für den Hinweis.
So etwas ist natürlich auch sehr wichtig zu wissen, finde ich.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 7. Januar 2008, 00:26

sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Montag 7. Januar 2008, 01:00

Hm, ich hatte das doch gerade nachgeschaut...

Auf der PyQt-Seite steht: "PyQt v4 is licensed under the GNU GPL and under a commercial license for all platforms." - entweder die haben das noch nicht angepasst (es geht da um Version 4.3.x) oder aber die neue Regelung von Trolltech, neben GPL auch ausgewählte andere Opensource-Lizenzen zu erlauben, gilt nicht für die Python-Bindings. Das wäre bis auf weiteres meine Annahme, denn der Anbieter wird's ja wohl wissen.

Stefan
Antworten