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
GUI Toolkit welches ist das richtige?
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
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
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
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo bankkind!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.
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Tkinter würde ich nicht empfehlen, da diesem Toolkit komplexere Widgets wie z.B. Kalender und Datumsfelder fehlen.bankkind hat geschrieben:Jetzt frage ich mich ob ich der einfachheithalber Tkinter oder doch ein wenig Arbeit investieren sollte und wxPython nehmen sollte.
Es gibt wohl drei GUI-Toolkits, die weit verbreitet und empfehlenswert sind:
- wxWidgets
- Qt4
- Gtk
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
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
DE ... *hust* => Desktop Environment
[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
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
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...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.
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?
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.
Schließlich ist die Auswahl ja groß genug.
Jedes der bisher erwähnten Toolkits Qt4, PyGtk wxWidgets und Tkinter läuft sowohl unter Linux als auch unter Windows.Erwin hat geschrieben:Welche GUI läuft auf allen Systemen?
Ja.Wenn ich das richtig verstanden habe, ist nur Tkinter von Anfang an dabei bei Python?
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.Können die anderen GUI etwas, was man mit Tkinter selbst auf Umwegen nicht bewerkstelligen kann?
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.
Was meinst Du damit, dass die Pendants nicht so mächtig sind?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.
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.
Schließlich ist die Auswahl ja groß genug.
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
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Stimmt nicht mehr, siehe dieser Thread, den es hier letztens gab.sma hat geschrieben:Bei Qt 4 unterliegt AFAIK der GPL oder erfordert eine gesonderte kommerzielle Lizenz.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
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
-
- User
- Beiträge: 106
- Registriert: Freitag 14. September 2007, 23:02
- Wohnort: Teltow
- Kontaktdaten:
Das Programm soll hauptsächlich auf einem Windows Desktop laufen, aber da auf meinem Notebook Debian(mit GNOME) ist, denke ich ich würde es auch dort nutzen.Du hast uns nicht gesagt, unter welchen Betriebssystemen dein Programm hauptsächlich laufen soll.
Bei Qt4 z.B. sind Toolbars automatisch frei platzierbar, sowohl als Toolbar als auch als Dock Window. Das Speichern der Positionen geschieht (fast) automatisch. Tkinter Toolbars können das nicht.Erwin hat geschrieben:Was meinst Du damit, dass die Pendants nicht so mächtig sind?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.
Beispiele bei anderen Toolkits kann ich dir nicht nennen, ich nutze nur Qt4. Deswegen sind meine Kenntnisse in Tkinter auch recht limitiert.
Als Vergleich reicht es aber eigentlich schon, sich mal die Liste der Tkinter-Widgets anzusehen, und mit der Liste der verfügbaren Qt4-Widgets zu vergleichen. Da fällt einem schnell auf, das Tkinter da weit weniger bietet. Für viele Anwendungen ist das nicht unbedingt dramatisch, bei komplexeren Anwendungen allerdings schon.
Sicher? Tkinter-Programme (Gentoo) sind bei mir anders dargestellt. Sie verwenden Motif zum Zeichnen (zumindest sehen sie so aus), was sich am schärfsten an mangelnder Kantenglättung der Schriften äußert.Also so weit ich das sehen konnte, passt sich Tkinter durchaus dem Stil des aktuellen Destops an. Habe es jetzt aber nur unter Linux getestet.
Unter Windows können Tkinter-Programme den XP-Stil nicht übernehmen, sprich selbst wenn das Luna-Theme aktiviert ist, sehen die Buttons nicht so aus.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hmm, das kann sein. Ich hatte irgendwo im Hinterkopf, dass da jemand im IRC deswegen bei Riverbank angefragt hat - aber ich weiß nicht, was da dabei rausgekommen ist.
Andererseits im FAQ:
Andererseits im FAQ:
Also richtet sich Riverbank nach Trolltech.FAQ hat geschrieben:Do I need the commercial version of PyQt?
The easiest way to answer this is to ask "Am I using the commercial edition of Qt?". If so then you also need the commercial version of PyQt. If you are using the GPL version of Qt, then you only need the GPL version of PyQt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Aus dem FAQ-Eintrag lese ich genau das andere heraus: Die erwähnen nur die GPL-Version von Qt und sagen, dass PyQt damit auch der (Original-)GPL (ohne irgendwelche Ausnahmen) unterliegt und das würde genau die Ausnahme von Qt, das auch andere OS-Lizenzen möglich sind, ausschließen.
Man sollte also in jedem Fall nochmal schriftlich (und damit verbindlich) nachfragen, wenn das sonst ein Problem werden könnte.
Stefan
Man sollte also in jedem Fall nochmal schriftlich (und damit verbindlich) nachfragen, wenn das sonst ein Problem werden könnte.
Stefan
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das kann nicht sein, da es Qt nur mit propietäter Lizenz und GPL/QPL gibt. Wenn ich ein BSD-Programm schreibe und GPL-Qt benutzen will (was ich inzwischen darf), dann folgt dem Eintrag dass ich GPL-PyQt nutzen darf.sma hat geschrieben:Aus dem FAQ-Eintrag lese ich genau das andere heraus: Die erwähnen nur die GPL-Version von Qt und sagen, dass PyQt damit auch der (Original-)GPL (ohne irgendwelche Ausnahmen) unterliegt und das würde genau die Ausnahme von Qt, das auch andere OS-Lizenzen möglich sind, ausschließen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice